我是maven的新手,请你帮我提供一个示例pom文件,介绍如何为我的spring项目创建一个属于特定包的jar文件。
以下是我的两个包
com.net.foo
com.org.bar
我想单独为包 com.org.bar 创建jar文件,名称为 org.jar
你能帮忙解决一下这个问题吗?
由于
答案 0 :(得分:1)
由于你是maven的新手,我应该告诉你每个maven模块(每个pom.xml)应该生成一个jar。从单个pom.xml生成两个jar是一种反模式。您可能想要创建一个多模块maven。
在这种情况下,您使用
创建父pom.xml<packaging>pom</packaging>
并且包括两个maven项目
<modules>
<module>foo</module>
<module>bar</module>
</modules>
现在你可以用一个构建来构建两个jar,但每个都是它自己的maven项目,这是正确的模式。
话虽如此,如果你真的想用包裹分开,我想你可以使用它:
https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html
但你不能简单地重复两次maven-jar-plugin。你必须创建2个配置文件或2个执行来强制maven运行jar插件两次。最简单的是创建2个执行。请参阅下面的代码。
现在,关于如何命名生产的jar,你需要在maven-jar-plugin上设置finalName配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>myJar</finalName>
</configuration>
</plugin>
全部放在一起:
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>foo</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<finalName>foo</finalName>
<includes>
<include>**/foo/*</include>
</includes>
</configuration>
</execution>
<execution>
<id>bar</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<finalName>bar</finalName>
<includes>
<include>**/bar/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
请注意,如果您遵循此方法,生成的jar文件不会自动视为项目工件,因此您需要执行其他工作来将它们安装/部署为maven工件。我强烈建议你采用多模块方法。
答案 1 :(得分:0)
您需要使用 maven-jar-plugin 。
使用示例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<excludes>
<exclude>**/bar/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>