当我运行“mvn deploy:deploy”时,maven会将4个jar文件部署到我的内部远程存储库。
他们是:
[模块名称] -1.jar
[模块名称] -1.pom
[模块名] -1- sources.jar
[module-name] -1-tests.jar
实际上部署了更多文件,例如md5和sha1文件。但为简单起见,我在这里跳过这些文件。
有没有办法从部署过程中排除[module-name] -1-sources.jar?
我能想到的一种方法是使用“mvn deploy:deploy-file”,它允许我查明要部署的jar。但是,由于我要部署几十个模块,如果我可以在pom.xml中配置部署文件排除,那将会很好。否则,我将不得不编写一个脚本来部署。
谢谢,
理查德
答案 0 :(得分:17)
从2.2
的版本maven-source-plugin
开始,您可以使用配置选项跳过源代码,而无需将插件放在父pom中的配置文件中:
<!-- Do not generate a source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<skipSource>true</skipSource>
</configuration>
</plugin>
答案 1 :(得分:5)
有没有办法从部署过程中排除[module-name] -1-sources.jar?
如果您不想部署源,请不要生成源。因此,要么删除以下内容(您必须在POM中使用),要么将其放在发布期间不使用或排除的配置文件中(我不知道在这种情况下何时使用源代码):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 2 :(得分:4)
让我假设您不要跳过为模块生成源代码。 在这种情况下,这将是一个简单的解决方案,可以帮助您处理这种情况:
在插件部分下的“maven-source-plugin”的执行部分中, 将attach属性设置为 false 。此配置将为您的模块生成sources.jar,但不会将其附加到项目的工件列表。
示例代码段位于:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin.version}</version>
<executions>
<execution>
<id>module1-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<!-- The below specified attribute 'attach' will disable the sources.jar not included in the artifact list -->
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
答案 3 :(得分:4)
如果您不想修改POM,可以通过将git pull origin partnersBranch
添加到mvn命令行来跳过创建源jar。
答案 4 :(得分:2)
部署插件maven网站:
http://maven.apache.org/plugins/maven-deploy-plugin/index.html
根据我在那里阅读的内容,看起来您可以从部署中排除模块,但不能排除单个文件 - 至少现在还没有。
如果您查看目标页面:
http://maven.apache.org/plugins/maven-deploy-plugin/plugin-info.html
它没有显示您正在寻找的插件的任何特定配置。由于目标页面是从插件类创建的,通过查看注释,我会说他们没有这种能力。
你可以做的一件事是创建一个不会创建你不想创建的jar的不同构建 - 即为该构建创建一个不同的程序集包等,并在你运行时运行构建尝试部署特定的包。
编辑:koppernickus对此有完整的描述,我建议你看看他的帖子。
答案 5 :(得分:1)
Maven mvn deploy:deploy
在maven进程(默认生命周期)期间部署所有生成的工件。要不部署[module-name]-1-sources.jar
,您应该只是(?)不生成一个。如果您使用maven-source-plugin
附加源文件,请不要再使用它。
如果您遇到的情况不是这样,请提供更多详细信息:
[module-name]-1-sources.jar
工件(哪个插件生成此工件?)答案 6 :(得分:0)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<attach>false</attach>
</configuration>
<executions>
<execution>
<phase>package</phase>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
attach参数指定是否将Java源代码附加到项目的工件列表。
<attach>false</attach>