¿Cómo configurar archivos pom y TeamCity para construir módulos dependientes en el proyecto maven java?

Tengo un proyecto que consta de dos módulos. Uno de ellos considerado principal. Entonces el segundo depende del primero. También debería generar archivos jar javadoc para módulos. La salida debe ser cuatro archivos .jar: 2 archivos jar de módulo y dos archivos jar javadoc.

Localmente, para generar ambos archivos jar, debería repetir este paso varias veces (no sé por qué):

  1. Construya el primero e instálelo en el repositorio local de Maven.

  2. Entonces puedo construir el segundo.

Sin la instalación de los primeros módulos no puedo lograr la fase de empaquetado, porque cuando pruebo el segundo módulo, no puedo encontrar el archivo jar del primer módulo.

¿Podría hacer todos estos pasos mediante un proceso de compilación?

POM que tengo:

  1. Padre pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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>ru.bingap</groupId>
    <artifactId>repres</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>
    <name>bingap</name>
    <modules>
        <module>mainmod</module>
        <module>secondmod</module>
    </modules>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>ru.bingap</groupId>
                <artifactId>repres</artifactId>
                <version>1.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
</project>
  1. Módulo principal pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <groupId>ru.bingap</groupId>
        <artifactId>repres</artifactId>
        <version>1.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>mainmod</artifactId>
    <version>1.0</version>
    <name>mainmod</name>
    <packaging>jar</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>javadoc</goal>
                        </goals>
                        <phase>prepare-package</phase>
                        <configuration>
                            <reportOutputDirectory>out\artifacts\output_jar\javadoc\</reportOutputDirectory>
                            <encoding>UTF-8</encoding>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <goals><goal>test-jar</goal></goals>
                        <phase>compile</phase>
                        <configuration>
                            <!--outputDirectory>out\artifacts\output_jar\</outputDirectory>
                            <finalName>mainmod</finalName-->
                        </configuration>
                    </execution>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals><goal>jar</goal></goals>
                        <phase>compile</phase>
                        <configuration>
                            <outputDirectory>out\artifacts\output_jar\</outputDirectory>
                            <finalName>mainmod-javadoc</finalName>
                            <classesDirectory>out\artifacts\output_jar\javadoc\apidocs\</classesDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>com.healthmarketscience.jackcess</groupId>
            <artifactId>jackcess</artifactId>
            <version>2.1.2</version>
        </dependency>
    </dependencies>
</project>
  1. Segundo módulo pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>repres</artifactId>
        <groupId>ru.bingap</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>ru.bingap</groupId>
    <artifactId>secondmod</artifactId>
    <version>1.0</version>
    <dependencies>
        <dependency>
            <groupId>ru.bingap</groupId>
            <artifactId>mainmod</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <packaging>jar</packaging>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
            <dependency>
                <groupId>com.healthmarketscience.jackcess</groupId>
                <artifactId>jackcess</artifactId>
                <version>2.1.2</version>
            </dependency>
            <dependency>
                <groupId>ru.bingap</groupId>
                <artifactId>mainmod</artifactId>
                <version>1.0</version>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.2</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.1.1</version>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>javadoc</goal>
                            </goals>
                            <phase>prepare-package</phase>
                            <configuration>
                                <reportOutputDirectory>out\artifacts\output_jar\javadoc\</reportOutputDirectory>
                                <encoding>UTF-8</encoding>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                    <executions>
                        <execution>
                            <id>secondmod</id>
                            <goals><goal>jar</goal></goals>
                            <phase>package</phase>
                            <configuration>
                                <outputDirectory>out\artifacts\output_jar\</outputDirectory>
                                <finalName>secondmod</finalName>
                            </configuration>
                        </execution>
                        <execution>
                            <id>attach-secondmod-javadocs</id>
                            <goals><goal>jar</goal></goals>
                            <phase>package</phase>
                            <configuration>
                                <outputDirectory>out\artifacts\output_jar\</outputDirectory>
                                <finalName>secondmod-javadoc</finalName>
                                <classesDirectory>out\artifacts\output_jar\javadoc\apidocs\</classesDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
</project>
Respuesta 1

Simplemente llama mvn clean installal proyecto principal. Construirá ambos módulos en el orden correcto.

Respuesta: 2

Estoy tratando de integrar Apple Map Web Snapshot que necesita un parámetro de consulta de firma en la URL. Pude generar y validar con éxito la firma ES256 en el paquete JWA de NPM pero no en Java. ...

Estoy haciendo un juego en 2D, nada lujoso, con objetos (llamados entidades de ahora en adelante) que deberían chocar entre sí y con el terreno. Ahora, detectar colisión no es el problema, el problema es cuando el ...

He leído que un método estático no puede llamar a un método no estático, pero esta compilación, el método principal (estático) llama quizás Método nuevo (no estático), ¿puede darme una pista? clase pública Mix4 {int counter ...

Estoy tratando de configurar VSCode como un entorno de desarrollo Java para el proyecto Java en el que estoy trabajando en el trabajo. He instalado los complementos recomendados para esta lista aquí, pero mi proyecto usa Lombok para ...