【发布时间】:2017-10-31 16:41:38
【问题描述】:
我正在尝试构建一个不可执行的 jar 文件,该文件仅包含我项目中的某些包,以用作通用代码的库。我计划将其部署到 Nexus 并将其包含在其他项目中。
我可以通过右键单击项目,选择导出,选择 JAR 文件(不是可运行的 Jar 文件)然后检查我想要包含的包,在 Eclipse 中手动创建它。我试图在 Maven 中模仿这种行为。我已经能够通过不在清单中包含 main 来复制 maven 中的不可运行部分,但仍然必须找出如何仅包含某些包。
这个项目实际上已经构建了 2 个 jar 文件(来自程序中的 2 个不同的主文件 - 一个测试 GUI 和常规应用程序)。我无法找到有关如何执行不可运行 jar 和仅选择某些包的信息。
下面是我的 pom 文件的现有构建部分。 build-third 是不可运行的 jar:
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>build-first</id>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.joy.fb20.da.exec.jDaExecutive</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>DaExecutive</finalName>
</configuration>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
<execution>
<id>build-second</id>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.joy.fb20.gui.jExampleAppGui</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>ExampleAppGui</finalName>
</configuration>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<execution>
<id>build-third</id>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>ddslib</finalName>
</configuration>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</plugin>
</plugins>
</build>
【问题讨论】:
-
如何将该部分分离为自己的工件项目并将其作为依赖项添加到您的原始项目中?还有其他需要它的人吗?
-
我最初想这样做,但代码的维护者拒绝拆分源代码,所以我的双手被束缚在这种方法中。
标签: maven