控制jar工件的maven最终名称我正在尝试在我们的超级pom中定义一个属性,它将被所有子项目用作生成的工件的目标。为此,我考虑使用project / build / finalName但这似乎不起作用,即使对于简单的poms:命令 mvn archetype:create \
-DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-appPOMmaxim@maxim-desktop:/tmp/mvn_test$ cat my-app/pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-app</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<finalName>${project.name}-testing</finalName>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies></project>maxim@maxim-desktop:/tmp/mvn_test/my-app$ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building my-app
[INFO] task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /tmp/mvn_test/my-app/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]我希望字符串“testing”会出现在生成的工件名称的某处。我是否误解了“finalName”的目的?
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
您finalName在插件配置部分中设置了该属性:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3.2</version> <configuration> <finalName>myJar</finalName> </configuration></plugin>
如官方文档中所示。
更新:
对于Maven> = 3
基于Matthew的评论,您现在可以这样做:
<packaging>jar</packaging> <build> <finalName>WhatEverYouLikey</finalName> </build>
查看错误报告/文档。
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
尝试这个......
的pom.xml
<groupId>org.opensource</groupId>
<artifactId>base</artifactId>
<version>1.0.0.SNAPSHOT</version>
..............<properties>
<my.version>4.0.8.8</my.version></properties><build>
<finalName>my-base-project</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<goals>
<goal>install-file</goal>
</goals>
<phase>install</phase>
<configuration>
<file>${project.build.finalName}.${project.packaging}</file>
<generatePom>false</generatePom>
<pomFile>pom.xml</pomFile>
<version>${my.version}</version>
</configuration>
</execution>
</executions>
</plugin></plugins></build>Commnad mvn clean install
产量
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ base --- [INFO] Building jar: D:\dev\project\base\target\my-base-project.jar [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ base --- [INFO] Installing D:\dev\project\base\target\my-base-project.jar to H:\dev\.m2\repository\org\opensource\base\1.0.0.SNAPSHOT\base-1.0.0.SNAPSHOT.jar [INFO] Installing D:\dev\project\base\pom.xml to H:\dev\.m2\repository\org\opensource\base\1.0.0.SNAPSHOT\base-1.0.0.SNAPSHOT.pom [INFO] [INFO] --- maven-install-plugin:2.3.1:install-file (default) @ base --- [INFO] Installing D:\dev\project\base\my-base-project.jar to H:\dev\.m2\repository\org\opensource\base\4.0.8.8\base-4.0.8.8.jar [INFO] Installing D:\dev\project\base\pom.xml to H:\dev\.m2\repository\org\opensource\base\4.0.8.8\base-4.0.8.8.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
添加回答
举报
0/150
提交
取消
