Maven - Как мне создать исходный файл для тестового пакета? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть проект Maven с именем my-work, в котором есть два исходных каталога src/test/java и src/main/java.Мне нужно было преобразовать их в один файл JAR, чтобы другие проекты могли их использовать, но в итоге я преобразовал их в два отдельных файла JAR.Теперь мне нужно иметь возможность создавать исходные JAR-файлы для каждого из этих двух JAR-файлов.

Сначала я создал два JAR-файла из каталогов main/ и test/, добавив их в мои pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Затем я попробовал инструкции здесь , чтобы создать JAR-файлы с исходниками.Проблема в том, что он создает только один JAR-источник, то есть my-work-0.0.1-SNAPSHOT-sources.jar.Но я хочу, чтобы он также создал my-work-0.0.1-SNAPSHOT-tests-sources.jar.Как мне это сделать?

Вот полный POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.myproject</groupId>
    <artifactId>my-work</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
        <defaultGoal>install</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <!--etc-->
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <name>mywork</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!--Dependencies here-->
    </dependencies>
</project>

Ответы [ 3 ]

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

Я могу сгенерировать источники для тестирования с помощью нижеуказанного плагина.Вы можете опубликовать свой файл pom?

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>test-jar</goal>
            </goals>
        </execution>
    </executions>
 </plugin>
0 голосов
/ 05 января 2019

Чтобы сгенерировать JAR-файлы как исходного, так и тестового источника, используйте следующий плагин:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>test-jar</goal>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Обратите внимание, что это не будет генерировать тестовый JAR (только стандартный JAR).Чтобы сгенерировать как стандартный, так и тестовый JAR, вы можете использовать следующий плагин:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>test-jar</goal>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
0 голосов
/ 04 января 2019

Я бы посоветовал взглянуть на плагин doco для этой цели

https://maven.apache.org/plugins/maven-source-plugin/test-jar-mojo.html

Похоже, что цель test-jar использует файл манифеста по умолчанию, который объясняет, почему источникиобъединены в один и тот же файл jar.

Я предлагаю использовать параметр defaultManifestFile, чтобы указать новый файл манифеста.Вам нужно будет определить этот файл самостоятельно, но затем вы можете убедиться, что целевой банке дано другое имя, что делает его другим файлом JAR.

Надеюсь, это поможет

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