मैं एक बहु-मॉड्यूल जावा प्रोजेक्ट के साथ मेवेन 3.6.2 का उपयोग कर रहा हूं। example मॉड्यूल core मॉड्यूल पर निर्भर करता है, इसलिए मेरे पास example मॉड्यूल के POM में इस तरह निर्भरता है:

<dependency>
    <groupId>com.company</groupId>
    <artifactId>core</artifactId>
    <version>${project.version}</version>
</dependency>

मुद्दा यह है कि जब मैं mvn clean install चलाता हूं तो core मॉड्यूल के सभी वर्गों को example जार में पैक नहीं किया जा रहा है। केवल example प्रोजेक्ट में उपयोग की जाने वाली कक्षाएं पैक की जा रही हैं। मुझे बाद की प्रक्रिया के लिए पैक की गई सभी कक्षाओं की आवश्यकता है।

मैं इस कॉन्फ़िगरेशन के साथ maven-shade-plugin का उपयोग कर रहा हूं:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.1</version>
    <configuration>
        <createDependencyReducedPom>false</createDependencyReducedPom>
        <minimizeJar>true</minimizeJar>
        <filters>
            <filter>
                <artifact>*:*</artifact>
                <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                    <exclude>module-info.class</exclude>
                </excludes>
            </filter>
        </filters>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <finalName>${project.name}</finalName>
            </configuration>
        </execution>
    </executions>
</plugin>

मैं core मॉड्यूल से example जार में सभी वर्गों को example जार में उपयोग किए बिना कैसे शामिल कर सकता हूं?

0
Duke Silver 5 सितंबर 2020, 01:26

1 उत्तर

सबसे बढ़िया उत्तर

मुद्दा minimizeJar पैरामीटर था। https://maven.apache.org/ के अनुसार plugins/maven-shade-plugin/shade-mojo.html#minimizeJar:

जब सही होता है, निर्भरता वर्ग स्तर पर केवल आर्टिफैक्ट के लिए आवश्यक ट्रांजिटिव हल तक छीन ली जाएगी।

मैंने उस पैरामीटर को हटा दिया और यह उम्मीद के मुताबिक काम किया।

1
Duke Silver 5 सितंबर 2020, 00:23