2017-08-25 11 views
1

現在、「リソース生成」段階でいくつかのリソースファイルを作成/処理できるはずのmavenプラグインを作成しようとしています。すべて正常に動作しますが、処理中にプラグインが入力として他のファイルを読み込む必要があるため、Apache Maven File Management APIを使用して入力ファイルのパスを指定することにしました。私はIn a MOJOの例のようにすべてを設定しました。Apache Mavenファイル管理APIを使用してmaven-pluginの絶対ファイルパスを取得

<plugin> 
    <groupId>my.groupId</groupId> 
    <artifactId>my-maven-plugin</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>mygoal</goal> 
      </goals> 
      <phase>generate-resources</phase> 
     </execution> 
    </executions> 
    <configuration> 
     <fileset> 
      <directory>${basedir}/src/main/resources</directory> 
      <includes> 
       <include>**/*.xml</include> 
      </includes> 
     </fileset> 
    </configuration> 
</plugin> 

しかし、私は、ファイルの絶対ファイルパスを取得することはできませんよ。私も午前

[INFO] --- my-maven-plugin:0.0.1-SNAPSHOT:mygoal (default) --- 
[INFO] some-file-A.xml 
[INFO] some-file-B.xml 

:結果はファイル名だけのようです

public void execute() throws MojoExecutionException { 
    FileSetManager fileSetManager = new FileSetManager(); 
    for (String includedFile : fileSetManager.getIncludedFiles(fileset)) { 
     getLog().info(includedFile); 
    } 
} 

...などFileSetManagerにはfileset.directory値を取得するメソッドが含まれていないため、fileset.directoryをファイル名と連結することはできません。

したがって、インクルードファイルの絶対パスを取得するにはどうすればよいですか?

答えて

0

私は、fileset.getDirectory()がそのトリックを行うことを知りました。

public void execute() throws MojoExecutionException { 
    FileSetManager fileSetManager = new FileSetManager(); 
    for (String includedFile : fileSetManager.getIncludedFiles(fileset)) { 
     getLog().info(fileset.getDirectory() + File.separator + includedFile); 
    } 
} 
関連する問題