Как получить файлы классов из зависимости Maven в папку target \ classes

Есть ли какой-либо плагин Maven, который позволяет мне копировать файлы классов для зависимости в папку target \ classes для моего проекта? В настоящее время мне нужно вручную открыть файл jar, в котором есть зависимости, извлечь пакет, который мне нужно скопировать, а затем скопировать его в папку target \ class для моего проекта.

Мне нужен способ сделать это в идеале в файле pom.xml, но я не смог найти работающего решения. Любая помощь будет оценена, спасибо.


person JackEsson    schedule 02.06.2020    source источник
comment
попробуйте команду maven clean install   -  person Natsu    schedule 02.06.2020
comment
Почему вам нравится копировать классы зависимости в target/classes?   -  person khmarbaise    schedule 02.06.2020
comment
@khmarbaise необходимо скопировать классы зависимостей, потому что приложению, для которого предназначен этот проект (Creo), для правильной работы требуется папка классов с зависимостями в одном месте.   -  person JackEsson    schedule 03.06.2020


Ответы (2)


Используйте maven-dependency-plugin. Вот пример того, как можно извлеките содержимое JAR-файла зависимости:

    <project>
       [...]
       <build>
         <plugins>
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-dependency-plugin</artifactId>
             <version>3.1.2</version>
             <executions>
               <execution>
                 <id>unpack</id>
                 <phase>package</phase>
                 <goals>
                   <goal>unpack</goal>
                 </goals>
                 <configuration>
                   <artifactItems>
                     <artifactItem>
                       <groupId>junit</groupId>
                       <artifactId>junit</artifactId>
                       <version>3.8.1</version>
                       <type>jar</type>
                       <overWrite>false</overWrite>
                       <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                       <destFileName>optional-new-name.jar</destFileName>
                       <includes>**/*.class,**/*.xml</includes>
                       <excludes>**/*test.class</excludes>
                     </artifactItem>
                   </artifactItems>
                   <includes>**/*.java</includes>
                   <excludes>**/*.properties</excludes>
                   <outputDirectory>${project.build.directory}/wars</outputDirectory>
                   <overWriteReleases>false</overWriteReleases>
                   <overWriteSnapshots>true</overWriteSnapshots>
                 </configuration>
               </execution>
             </executions>
           </plugin>
         </plugins>
       </build>
       [...]
     </project>
person mentallurg    schedule 02.06.2020

Это звучит как ужасная идея. Если вы хотите включить распакованные зависимости в свой проект, используйте плагин сборки maven или плагин maven shade.

person J Fabian Meier    schedule 02.06.2020