如何将README.md复制到src/main/resources?
Howto copy README.md into src/main/resources?
我想在我的 Web 应用程序中显示 README.md
文件之类的帮助页面。为了不创建重复项,我需要通过 mvn
从项目路径复制到资源中。
我该怎么做?
有什么想法吗?
我试过:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<!-- this is important -->
<overwrite>true</overwrite>
<!-- target -->
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<!-- source -->
<directory>/</directory>
<include>
<filter>**/README.md</filter>
</include>
</resource>
</resources>
</configuration>
</plugin>
这在我的一个项目中对我有用:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<!-- when to execute copy operation -->
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}/pathTo.MD</directory>
</resource>
</resources>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/${project.build.finalName}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
我看到我从你的版本中得到了额外的阶段和目标。我还使用变量作为输出位置。
我建议你更等于这个例子:http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html
使用 "more equal" 我的意思是喜欢使用 <executions>
标签。
您当然可以省略 <id>
和 filtering
等内容。
以下对我来说效果很好:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>myID</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>src</directory>
<!-- Details about filtering: http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html -->
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>
最简单的解决方案是将适当的文件移动到 src/main/resources
文件夹,而第二种解决方案可能是这样的:
<build>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>README.md</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
不需要maven-resources-plugin配置,这可以通过通常的生命周期和资源处理来处理。您可能唯一需要调整的是 README.md
所在的文件夹。如果您喜欢过滤,您还需要添加 <filtering>true</filtering>
部分。
在 src/**
的构建过程中通过 Maven 复制某些内容通常不是一个好主意,因为这些文件夹由版本控制系统控制,这将导致您不希望有未提交的更改。
注意:检查插件的最新版本是明智的(因为 2.3 是 2008 年的!)。当前插件版本的列表可以在这里找到:http://maven.apache.org/plugins/
我想在我的 Web 应用程序中显示 README.md
文件之类的帮助页面。为了不创建重复项,我需要通过 mvn
从项目路径复制到资源中。
我该怎么做?
有什么想法吗?
我试过:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<configuration>
<!-- this is important -->
<overwrite>true</overwrite>
<!-- target -->
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<!-- source -->
<directory>/</directory>
<include>
<filter>**/README.md</filter>
</include>
</resource>
</resources>
</configuration>
</plugin>
这在我的一个项目中对我有用:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<!-- when to execute copy operation -->
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}/pathTo.MD</directory>
</resource>
</resources>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/${project.build.finalName}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
我看到我从你的版本中得到了额外的阶段和目标。我还使用变量作为输出位置。
我建议你更等于这个例子:http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html
使用 "more equal" 我的意思是喜欢使用 <executions>
标签。
您当然可以省略 <id>
和 filtering
等内容。
以下对我来说效果很好:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>myID</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>src</directory>
<!-- Details about filtering: http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html -->
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>
最简单的解决方案是将适当的文件移动到 src/main/resources
文件夹,而第二种解决方案可能是这样的:
<build>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>README.md</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
不需要maven-resources-plugin配置,这可以通过通常的生命周期和资源处理来处理。您可能唯一需要调整的是 README.md
所在的文件夹。如果您喜欢过滤,您还需要添加 <filtering>true</filtering>
部分。
在 src/**
的构建过程中通过 Maven 复制某些内容通常不是一个好主意,因为这些文件夹由版本控制系统控制,这将导致您不希望有未提交的更改。
注意:检查插件的最新版本是明智的(因为 2.3 是 2008 年的!)。当前插件版本的列表可以在这里找到:http://maven.apache.org/plugins/