Как удалить файл во время установки (сборки) maven из целевого каталога - PullRequest
0 голосов
/ 04 сентября 2018

Я ищу, чтобы удалить папку (api-docs) из целевой папки. Когда я делаю сборку maven, когда создается целевая папка, она должна исключать эту папку (api-docs).
Target содержит классы, кодовый код, генерируемые источники, параметры javadoc-bundle-параметры, maven-архиватор, maven-status, тестовые классы и файл war.
Мне нужно исключить (api-docs), который присутствует в codegen
Codegen> Генерируемые источники> web> api-docs (содержит css, шрифты, изображения, lang, lib, specs и некоторые другие js и html файлы)

 <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>build</phase>
                                <goals>
                                    <goal>build</goal>
                                </goals>
                                <configuration>                                  
                                    <tasks>
                                        <delete>
                                          <fileset> dir="${project.build.outputDirectory}/target/codegen/generated-sources/web/api-docs"/>
                                        </delete>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>  
          `


Я добавил это в pom.xml, но не смог удалить. Пожалуйста, предложите
Вот все содержимое сборки из файла pom

<build> 
<pluginManagement>
<plugins>
<plugin>
<groupId>com.xxx.chassis.api.plugins</groupId>
<artifactId>codegen-maven-plugin</artifactId>
<version>${codegen.plugin.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<templateDir>chassis-archetypes</templateDir>
<configFile>${project.parent.basedir}/codegen-config.yaml</configFile>
<specifications>
<specification>${project.parent.basedir}/partnerships-originations-product-offer-id.yaml</specification>
</specifications>
<basePackage>com.xxx.papi.popoi</basePackage>
</configuration>
</plugin> 

           <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <executions>
                        <execution>
                            <phase>build</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                            <configuration>                                  
                                <tasks>
                                    <delete>
                                      <fileset dir="${project.build.directory}/codegen/generated-sources/web/api-docs/swagger-ui.min.js"/>
                                    </delete>
                                </tasks>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>  

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${codegen.generated-sources}/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<sourcepath>${codegen.generated-sources}/java</sourcepath>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Цель для antrun-plugin - run, а не build. Соответствующее изменение pom.xml должно помочь:

[...]
<goals>
  <goal>run</goal>
</goals>
[...]

Вы также должны дважды проверить, в какой фазе создается папка api-doc, и вы должны вызвать ant-plugin на более поздней фазе, например package:

[...]
<phase>package</phase>
[...]

В качестве третьего пункта переменная Maven ${project.build.outputDirectory} обычно ссылается на папку target/classes. Пожалуйста, проверьте этот ответ для более подробной информации. Поэтому вы можете использовать

<fileset dir="${project.basedir}/target/codegen/generated-sources/web/api-docs"/>

или - точнее -

<fileset dir="${project.build.directory}/codegen/generated-sources/web/api-docs"/>
0 голосов
/ 04 сентября 2018

Пожалуйста, поделитесь всем содержимым раздела build-> plugins вашего pom-файла. Нет необходимости добавлять maven-antrun-plugin в ваш pom. Папка apidocs в вашей целевой директории обычно создается с помощью maven-javadoc-plugin, который вы, возможно, присутствует в вашем pom-файле. Первый способ предотвратить создание папки apidocs - удалить объявление плагина из pom. Альтернативным способом было бы предоставить аргумент maven.javadoc.skip согласно этому ответу: https://stackoverflow.com/a/9360317/7810853

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...