Пакет mvn не создает jar для зависимостей с областью компиляции - PullRequest
0 голосов
/ 08 января 2019

Я приехал из Gradle и переключаю один из моих проектов на Maven. Gradle автоматически создал jar для тех зависимостей, которые имели <scope>compile</scope>, но, похоже, Maven этого не делает? Есть ли способ сказать Maven, чтобы создать jar для моих зависимостей компиляции области?

Вот фрагмент моего pom.xml, для которого я ожидаю, что jar-файлы, созданные где-то в моей папке target

<dependencies>
    <dependency>
        <groupId>com.yubico</groupId>
        <artifactId>yubico-validation-client2</artifactId>
        <version>3.0.2</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.unboundid</groupId>
        <artifactId>unboundid-ldapsdk</artifactId>
        <version>4.0.8</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.mashape.unirest</groupId>
        <artifactId>unirest-java</artifactId>
        <version>1.4.9</version>
        <scope>compile</scope>
    </dependency>
<dependencies>

1 Ответ

0 голосов
/ 09 января 2019

Похоже, нет способа справиться с этим элегантно, как это делает Грэдл. Мне пришлось вручную импортировать зависимости, используя maven-dependency-plugin, чтобы создать jar-файлы для каждой и каждой зависимости, которую я нашел, когда нуждался в запуске приложения (т. Е. Все те, которые имели compile область действия).

Итак, для каждого блока <dependency> с областью действия compile Мне пришлось использовать <artifactItem> внутри maven-dependency-plugin, вот пример для Rollbar:

<dependency>
    <groupId>com.rollbar</groupId>
    <artifactId>rollbar-java</artifactId>
    <version>1.4.0</version>
    <scope>compile</scope>
</dependency>

Вот что у меня сработало:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.1.1</version>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <artifactItems>
            <artifactItem>
                <groupId>com.rollbar</groupId>
                <artifactId>rollbar-java</artifactId>
                <version>1.4.0</version>
                <type>jar</type>
            </artifactItem>
        </artifactItems>
    </configuration>
</plugin>
...