Maven 2 无法使用maven release插件禁用源JAR的生成
我试图使用Maven 2.2.1和Maven release plugin 2.0-beta-9发布一个web项目,但在发布时总是失败:为EAR项目生成源jar,这是有意义的,因为EAR项目没有任何源Maven 2 无法使用maven release插件禁用源JAR的生成,maven-2,release,ear,maven-release-plugin,Maven 2,Release,Ear,Maven Release Plugin,我试图使用Maven 2.2.1和Maven release plugin 2.0-beta-9发布一个web项目,但在发布时总是失败:为EAR项目生成源jar,这是有意义的,因为EAR项目没有任何源 [INFO] [INFO] [source:jar {execution: attach-sources}] [INFO] [INFO] ------------------------------------------------------------------------ [INFO]
[INFO] [INFO] [source:jar {execution: attach-sources}]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] BUILD ERROR
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Error creating source archive: You must set at least one file.
为了尝试禁用EAR项目的源JAR构建,我在我的EAR项目的POM中添加了以下内容(发布插件的版本在父POM中设置):
...
org.apache.maven.plugins
maven发布插件
假的
在签入此更改后再次运行发行版时,我在为EAR项目生成sources JAR时遇到了相同的错误,尽管这应该被前面的POM代码段禁用
我做错了什么?为什么源JAR仍在构建中
编辑:
我已尝试使源插件包含my application.xml文件,以便通过添加以下POM片段避免出现此错误:
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<includes>
<include>${basedir}/META-INF/**/*</include>
</includes>
<useDefaultExcludes>false</useDefaultExcludes>
</configuration>
</plugin>
</plugins>
</build>
...
org.apache.maven.plugins
maven源插件
${basedir}/META-INF/**/*
假的
不幸的是,这也不能解决问题。我终于找到了答案。我需要添加源文件作为引用的一部分:
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>META-INF/**/*</include>
</includes>
<excludes>
<exclude>target/**/*</exclude>
<exclude>bin/**/*</exclude>
<exclude>META-INF/.svn/**/*</exclude>
</excludes>
</resource>
</resources>
${project.basedir}
META-INF/**/*
目标/**/*
垃圾箱/**/*
META-INF/.svn/**/*
这样做使一切都恢复正常。我不需要为版本或源插件进行任何特殊配置,就可以让它正常工作。maven源插件2.1版中有一个bug,导致了与您在这里描述的相同的错误。更新版本>=2.1.1包含修复程序。这里有一个指向此Bug的链接,以获取更多信息 为什么你要使用maven发布插件的2.0-beta-9…2.0存在..发布插件不是阻止创建源JAR的正确方法…据我所知,EAR需要一些配置/属性文件…(源文件)?可能是我错了…我使用的是一个旧版本的发布插件,部分原因是该版本正是发布的分支开发所依据的版本,也因为我没有意识到v2.0已经过时。关于源文件,出于某种原因,源插件没有接收到您放在EAR中的配置文件。我已尝试将源插件配置为包含my application.xml(在非标准目录中),但仍然会出现相同的错误。
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>META-INF/**/*</include>
</includes>
<excludes>
<exclude>target/**/*</exclude>
<exclude>bin/**/*</exclude>
<exclude>META-INF/.svn/**/*</exclude>
</excludes>
</resource>
</resources>