Компиляция проекта Maven

  • Когда вам нужно использовать пакет jar в каталоге lib при компиляции, вам нужно добавить < plugin> в pom

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <!--指定外部lib-->
                        <extdirs>${basedir}\src\main\resources\lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • Если вы все еще хотите продолжить сборку проекта, когда вы столкнулись с ошибкой теста, вам необходимо установить для свойства testFailureIgnore плагина surefire значение true.

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

Для проектов агрегирования Maven не рекомендуется писать общедоступный код в родительском проекте, поскольку родительский проект зависит от дочернего проекта, а дочерний проект должен использовать общедоступный код в родительском проекте, чтобы полагаться на родительский проект. Это формирует циклическую зависимость и упаковывается При упаковке будет сообщено об ошибке, и упаковка завершится неудачно (не влияет на компиляцию кода; но при упаковке родительский проект должен ссылаться на пакет jar подпроекта, а упакованный подпроект должен ссылаться на пакет jar родительского проекта, но оба проекта еще не упакованы , Значит упаковка не удалась).

Решение:

  • Не пишите общий код в родительском проекте

    如果必须要抽公共代码,建议新建一个工程作为专门用来写公共代码,在所有工程的上一级目录创建一个pom.xml用来管理所有的子工程,如此便不会因为循环依赖导致打包失败

     

  • Сначала упакуйте родительский проект, затем упакуйте подпроекты

    如果已经在parent工程中写了公共代码,则需要现将parent工程中的<modules></modules>标签中的管理的子工程注释掉,并修改<packaging>pom</packaging>为<packaging>jar</packaging>(parent工程的pachaging都是pom),然后install将jar包安装到本地仓库;parent工程打包成功后,将之前注释调的<modules></modules>标签中的注释去掉,修改<packaging>jar</packaging>为<packaging>pom</packaging>,然后在parent工程package打包子工程。

рекомендация

отblog.csdn.net/zhangwenchao0814/article/details/108645973