有谁知道如何让像.gitignore这样的资源成为最终项目的一部分?
PS。我确定它不存在。
答案 0 :(得分:17)
即将发布的maven-resources-plugin v3.0.0(在发布此版本时尚未发布;当前仍为2.7)的解决方案似乎比阻止版本升级更好:
private void btRecOn_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen == true) // COMport is open
Text = recon; // string recon = "recording on"
serialPort1.Write(Text); // sends text "recording on" to arduino
}
private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting(); // reads data from serial port
this.Invoke(new EventHandler(trataDadoRecebido)); // calls another thread to write data in text
}
private void trataDadoRecebido(object sender, EventArgs e)
{
textBoxReceber.AppendText(RxString);
}
答案 1 :(得分:11)
使用空目录标记向fileSet
添加src/main/resources/META-INF/maven/archetype-metadata.xml
条目:
<fileSet>
<directory></directory>
<includes>
<include>.gitignore</include>
</includes>
</fileSet>
这会将包含的文件从src/main/resources/archetype-resources
复制到项目根目录。
答案 2 :(得分:9)
通过在调试时启动Maven构建(使用-X选项)来检查maven-resources-plugin版本。如果您使用2.7,there is a regression where .gitignore files are silently ignored。
在这种情况下,您必须在pom.xml中明确使用2.6:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</pluginManagement>
</build>
答案 3 :(得分:6)
这个bug似乎仍然存在于maven-archetype-plugin v3.0.1中。 对于那些不想降级maven-resource-plugin的人。我设法建立了一个或多或少丑陋的解决方法。
首先,将archetype-resources / .gitignore重命名为
__gitignore__
然后在archetype-metadata.xml
添加
<requiredProperties>
<requiredProperty key="gitignore">
<defaultValue>.gitignore</defaultValue>
</requiredProperty>
</requiredProperties>
<fileSets>
<fileSet>
<directory></directory>
<includes>
<include>__gitignore__</include>
</includes>
</fileSet>
</fileSets>
当生成原型时,maven现在将首先复制__gitignore__
,然后查看__[file]__
语法,并将其替换为默认值&#34; .gitignore&#34;
答案 4 :(得分:2)
https://issues.apache.org/jira/projects/ARCHETYPE/issues/ARCHETYPE-505表明,当前版本的插件和Maven已彻底破坏了这一点。没有变通办法了。
答案 5 :(得分:0)
降级maven-resources-plugin
的替代方法是强制执行实际有回归的plexus-utils
版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<dependencies>
<!-- it's for fixing maven-resources-plugin 2.7 MRESOURCES-190 -->
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<!-- this is last 2.x release -->
<version>2.1</version>
</dependency>
</dependencies>
</plugin>
答案 6 :(得分:0)
该bug仍然在最新的maven-archetype-plugin 2.4和maven-resources-plugin 3.0.1中。
这是解决方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
并在您的生成pom.xml中添加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
答案 7 :(得分:0)
最适合我的解决方案是使用原型安装后groovy脚本。
在原型项目的资源文件夹中创建文件META-INF/archetype-post-generate.groovy
。
添加此代码:
file = new File( request.getOutputDirectory(), request.getArtifactId()+"/.gitignore.tmpl" );
def gitIgnorefile = new File( request.getOutputDirectory(), request.getArtifactId()+"/.gitignore" );
file.renameTo(gitIgnorefile)
在archetype-metadata.xml
文件中,包含模板.gitignore.tmpl
文件。
<fileSet>
<directory/>
<includes>
<include>.gitignore.tmpl</include>
</includes>
</fileSet>
我在使用Maven资源插件时遇到问题,因此使用了Groovy脚本解决方案。