create directory when needed in maven

后端 未结 3 1739
时光取名叫无心
时光取名叫无心 2020-12-05 06:13

I am using maven-exec-plugin to generate java sources of Thrift. It invokes the external Thrift compiler and using -o to specify the output directory, \"target/generated-sou

相关标签:
3条回答
  • 2020-12-05 07:10

    If you would like to prepare such folder structure somewhere in your project and then copy to place you want, use maven-resource plugin to do that:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
       <executions>
           <execution>
               <id>copy-folder</id>
               <phase>package</phase>
               <goals>
                   <goal>copy-resources</goal>
               </goals>
               <configuration>
                   <outputDirectory>${project.build.directory}</outputDirectory>
                   <resources>
                       <resource>
                        <filtering>false</filtering>
                        <directory>${project.basedir}/src/main/resources/folders</directory>
                       </resource>
                   </resources>
               </configuration>
        </execution>
       </executions>
    </plugin>
    
    0 讨论(0)
  • 2020-12-05 07:11

    Instead of the exec plugin, use the antrun plugin to first create the directory and then invoke the thrift compiler.

    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <id>generate-sources</id>
          <phase>generate-sources</phase>
          <configuration>
            <tasks>
              <mkdir dir="target/generated-sources/thrift"/>
              <exec executable="${thrift.executable}">
                <arg value="--gen"/>
                <arg value="java:beans"/>
                <arg value="-o"/>
                <arg value="target/generated-sources/thrift"/>
                <arg value="src/main/resources/MyThriftMessages.thrift"/>
              </exec>
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    

    You may also want to take a look at the maven-thrift-plugin.

    0 讨论(0)
  • 2020-12-05 07:17

    You can define an ant task to do the job. Put the plugin declaration into your project's pom.xml. This will keep your project system-independent:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>createThriftDir</id>
                        <phase>process-resources</phase>
                        <configuration>
                            <tasks>
                                <delete dir="${thrift.dir}"/>
                                <mkdir dir="${thrift.dir}"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
             </plugin>
    
    0 讨论(0)
提交回复
热议问题