Как добавить ссылку на Mavenized Projects - PullRequest
0 голосов
/ 31 октября 2011

У меня есть два проекта mavenized

  1. Project_A: Java Project
  2. Project_B: веб-проект Java

Раньше, перед тем, как создавать оба проекта, у меня была ссылка (buildpath) Project_A в Project_B. Теперь я настроил оба проекта с Maven2. Мои вопросы: как я могу добавить ссылку Project_A в Project_B, чтобы WAR of Project_B можно было запустить

До сих пор я пытался выполнить следующий фрагмент кода, который, кажется, работает, но во время выполнения Project_B WAR выдает исключение в applicationContext, что экземпляр класса Project_A не может быть инициирован.

1 - Project_A очищен и установлен в локальном хранилище с именем «myproject-1.0.jar» где фрагмент сборки (Project_A's POM) выглядит следующим образом #

Отредактированная часть

  <modelVersion>4.0.0</modelVersion>
   <groupId>org.myurl<groupId>
<artifactId>projectA</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>${project.artifactId}-${project.version}</name>




build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <outputDirectory>${basedir}/target/classes</outputDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${basedir}/src/test/resources</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <optimize>true</optimize>
                </configuration>
            </plugin>

        </plugins>
    </build>
  1. Фрагмент POM Project_B, куда я добавляю установленную флягу Project_A

             <dependency>
        <groupId>org.myurl</groupId>
        <artifactId>projectA</artifactId>
        <version>1.0</version>
        <scope>compile</scope>
    </dependency>
    

Спасибо за предложения заранее.

Ответ: На самом деле не было никаких проблем с Maven. Вышеуказанные конфигурации в POM абсолютно верны. Я переместил файлы свойств в / Resources и позже я забыл изменить пути в тех классах, где используются файлы свойств.

Тем не менее я благодарен Дельфин и Никола Мусатти за их предложения.

1 Ответ

0 голосов
/ 31 октября 2011

Вы на правильном пути, pom snippet отлично, что вам нужно сделать сейчас, это сделать родительский проект (Maven Reactor).Таким образом, вы создадите новый проект и в этом проекте определите модули (Проект A и Проект B).Вы будете ссылаться на этого родителя в Проекте A и Проекте B, и это поможет.Родитель Google maven, чтобы увидеть, как это делается.

После создания проекта B maven сначала создаст проект A, а затем проект B.

Суть в том, что ваш подход должен работать (но это не так).правильный способ сделать это).Так что, вероятно, вы делаете ошибку в groupId, версии.Вы можете проверить это, собрав Project A, а затем проверив локальный репозиторий maven.Внутри него вы должны увидеть структуру папок, если не что-то пошло не так.

org / myurl / projectA-1.0.jar

Структура проекта следующая:

проект-родительский проект-проект-b

в родительском проектеВы определяете:

<groupId>foo.bar</groupId>
<artifactId>project-parent</artifactId>
<version>00.01-SNAPSHOT</version>
<name>FooBar:: Parent Project</name>
<packaging>pom</packaging>

<modules>
    <module>../project-a</module>
    <module>../project-b</module>
</modules>

в project-a и project-b и добавляете:

<parent>
    <groupId>foo.bar</groupId>
    <artifactId>project-parent</artifactId>
    <version>00.01-SNAPSHOT</version>
</parent>

В project-b у вас будет ссылка на project-a

    <dependency>
        <groupId>foo.bar</groupId>
        <artifactId>project-a</artifactId>
        <version>00.01-SNAPSHOT</version>
    </dependency>

После того, как вы соберете parent, он должен правильно собрать все модули.Не используйте плагин, забудьте, что я сказал Maven Reactor:)

...