Попытка сделать мои файлы классов main / java для компиляции в .jar, а затем создать .war также - PullRequest
0 голосов
/ 12 марта 2012

У меня есть приложение Spring (MVC), которое я создал с использованием IntelliJ.Я использую Maven.

Мой файл pom.xml в настоящее время создает файл war, когда я запускаю:

mvn clean install

pom.xml:

 <packaging>war</packaging>

Теперь я хочучтобы избежать создания двух разных решений, если это возможно.

Весь мой код в / src / main / java имеет имя пакета:

com.myapp

Я хочу, чтобы все эти классы были в комФайл .myapp.jar.

Также во время процесса установки maven я хочу, чтобы он затем добавил этот com.myapp.jar в путь / lib, когда он создает файл .war, чтобы я мог развернуть его в tomcat /jetty.

Может кто-нибудь обрисовать в общих чертах, что я должен делать, я запутался, как я могу сделать обе эти вещи одновременно.

В настоящее время раздел сборки моего pom.xml выглядит следующим образом:

<build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>2.3.2</version>
               <configuration>
                   <source>${java-version}</source>
                   <target>${java-version}</target>
               </configuration>
           </plugin>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-war-plugin</artifactId>
               <version>2.1.1</version>
               <configuration>
                   <warName>myapp</warName>
               </configuration>
           </plugin>
           <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>tomcat-maven-plugin</artifactId>
               <version>1.1</version>
           </plugin>
           <plugin>
               <groupId>org.mortbay.jetty</groupId>
               <artifactId>maven-jetty-plugin</artifactId>
               <version>6.1.26</version>
               <configuration>
                   <scanIntervalSeconds>10</scanIntervalSeconds>
                   <contextPath>/</contextPath>

               </configuration>

           </plugin>
       </plugins>
   </build>

Ответы [ 4 ]

1 голос
/ 13 марта 2012

Это не очень понятно, но если вы хотите заархивировать свои классы и поместить классы в каталог lib файла WAR.Если это то, на что вы смотрите, плагин делает то же самое:

 <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.1.1</version>
      <configuration>
          <archiveClasses>true</archiveClasses>
      </configuration>
 </plugin>
0 голосов
/ 13 марта 2012
0 голосов
/ 13 марта 2012

Вам нужно сделать свой проект модульным, связать ваш src / main / java с pom и упаковать его как jar, затем создать другой веб-проект с другим pom и добавить этот уже созданный проект в качестве модуля.Итак, ваш родительский пом должен иметь такой модуль:

<modules>
        <module>core</module>
</modules>
0 голосов
/ 13 марта 2012

Вы должны создать два проекта Maven.Один для банки с теми классами, которые вам нужны в банке, и второй проект Maven для войны.В военном проекте jar-проект должен быть добавлен как зависимость.

Кроме того, если вы хотите установить военный проект и одновременно создать этот jar-файл (только в одной командной строке), вы должны определитьвоенный проект как родительский проект и jar как модуль.См. doc и теги <parent>...</parent> и <modules>...</modules>.

Итак, родительский pom должен иметь тег модуля, а модуль pom должен иметь родительский тег.Когда вы запускаете mvn install поверх родительского проекта (war one), maven автоматически запускает сначала команду над модулем.Смотрите также этот мультипроект maven doc .

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