Maven - встроенный фляга с использованием maven-assembly-plug в не всегда развертываемом - PullRequest
2 голосов
/ 15 сентября 2009

Я могу прекрасно создать развертываемый jar на моей локальной машине, но при попытке использовать jar, созданный на нашем сервере, даже если я явно вызываю команду вручную, jar не запустится. Сначала казалось, что это не те файлы, которые были в моем каталоге classpath / Resources, но после добавления подключаемого модуля builder-helper теперь они правильно включены. Тем не менее, он по-прежнему не будет работать. Я хотел бы узнать больше о том, как отладить это, как определить различия в попытках увидеть, что происходит локально по сравнению с сервером. Вот соответствующий раздел POM для плагина в

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<executions>
 <execution>
  <goals>
   <goal>attached</goal>
  </goals>
  <phase>package</phase>
  <configuration>
   <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
   </descriptorRefs>
   <archive>
    <manifest>

     <mainClass>com.medialets.service.PostEC</mainClass>
    </manifest>
   </archive>
  </configuration>
 </execution>
</executions>

Простите, если это действительно простой вопрос; Я относительно новичок в Maven и нигде не нашел хорошего ответа. Возможно, потому что это более фундаментально, чем я понимаю. Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2009

Вы также можете попробовать запустить плагин help :ffective-pom , чтобы увидеть, есть ли какие-либо различия в POM, которые разрешает maven.

0 голосов
/ 15 сентября 2009

Это предположение, основанное на моем аналогичном опыте. Если это не решение, можете ли вы опубликовать свой POM? это может помочь диагностировать проблему.

Являетесь ли вы сервером * nix box и локальным компьютером Windows? Если это так, имейте в виду, что при указании папки дополнительных ресурсов вы должны использовать косые черты, а не обратную косую черту для разделителя пути. Косые черты работают как в Windows, так и в * nix, тогда как обратные косые черты игнорируются в * nix-блоках.

Итак, ваша конфигурация buildhelper должна выглядеть следующим образом:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
      <execution>
        <id>add-resource</id>
        <phase>generate-resources</phase>
        <goals>
          <goal>add-resource</goal>
        </goals>
        <configuration>
          <resources>
            <resource>
              <directory>classpath/Resources</directory>
              <targetPath>/</targetPath>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>

Кроме того, если вы можете следовать конвенциям Maven, то стоит сделать это. По умолчанию ресурсы должны быть расположены в src / main / resources. Некоторые плагины не будут правильно обрабатывать ресурсы, добавленные плагином build-helpr.

...