最近作成した 質問 のわずかに異なるバージョンがあります。 MavenプロジェクトがありますNetbeans 7.3他のライブラリをインポートするために使用するbuild.xml
がありますが、ビルドオプションを構成するpom.xml
ファイル。これで、Netbeans 7.3のプロジェクトフォルダーに保存されたテキストファイル(たとえばtextfile.txt
)があります。
project folder
textfile.txt
src
package
package.subpackage
MyClass.Java
コンパイルすると、jarファイルが置かれているtarget
フォルダーが取得されます。
project folder
textfile.txt
target
classes
generated-sources
....etc
test-classes
MyProject.jar
src
package
package.subpackage
MyClass.Java
Mavenプロジェクトをコンパイルするときに、ターゲットフォルダーの下にコピーされるファイルtextfile.txtを作成するにはどうすればよいですか?
最初の方法は、ファイルをsrc/main/resources
に配置することです。これは、準拠したリソース、つまりjarファイルに含まれるリソース(アイコンの画像など)を格納するためのフォルダーです。
構成ファイルをjarとともに配布する必要があるが、それによって分離する必要がある場合は、pom.xml
ファイルを編集する必要があります。可能な答えは、<plugins>
タグと</plugins>
タグの間に次のプラグインを追加することです。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Using env.test.properties</echo>
<copy file="textfile.txt" tofile="${basedir}/target/textfile.txt"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
さらに、 here と読むことができるので、専用のプラグインを使用して、ターゲット内の「入力」ディレクトリから「出力」ディレクトリにすべてのリソースをインポートすることもできます。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/output</outputDirectory>
<resources>
<resource>
<directory>input</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
私が知っているようにいくつかのリソースを使用する最も簡単な方法(リソース設定に関する追加情報はここで見つけることができます: https://maven.Apache.org/plugins/maven-resources-plugin/ ):
<build>
<plugins>
<!-- your plugins, including or not maven-resource-plugin -->
</plugins>
<resources>
<resource>
<filtering>true</filtering><!-- if it is neccessary -->
<directory>${project.basedir}</directory><!-- from -->
<targetPath>${project.build.directory}</targetPath><!-- to -->
<includes><!-- what -->
<include>textfile.txt</include>
</includes>
</resource>
</resources>
</build>
ビルドの出力を完全に制御するには、「Apache Maven Assembly Plugin」を使用できます。ほとんどすべて(フォーマット、サブフォルダーなど)を定義できます。
MavenのAssembly Pluginは、主に、プロジェクトの出力をその依存関係、モジュール、サイトのドキュメント、およびその他のファイルとともに1つの配布可能なアーカイブに集約できるようにすることを目的としています。
プラグインをpomファイルにインストールする必要があります。
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/Assembly/yourassembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-Assembly-plugin</artifactId>
<version>x.x</version>
<configuration>
<descriptors>
<descriptor>src/main/Assembly/yourassembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-Assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- append to the packaging phase. -->
<goals>
<goal>single</goal> <!-- goals == mojos -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
あなたの場合、記述子「yourassembly.xml」は次のようになります。
<Assembly xmlns="http://maven.Apache.org/plugins/maven-Assembly-plugin/Assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/plugins/maven-Assembly-plugin/Assembly/1.1.3 http://maven.Apache.org/xsd/Assembly-1.1.3.xsd">
<id>yourassembly</id>
<formats>
<format>tar.gz</format>
<format>dir</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>textfile.txt</include>
</includes>
</fileSet>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
</fileSets>
</Assembly>
私の設定ファイルを構築し、生産を更新するために、これは私のために働いた:
<build>
<resources>
<resource>
<directory>${project.basedir}</directory><!-- from -->
<targetPath>${project.build.directory}</targetPath><!-- to -->
<includes><!-- what -->
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>