2014-05-15 2 views
7

При использовании Maven-Jar-плагин
Я хотел бы добавить запись в Manifest.mf
Так оно будет содержать:
Class-Path:.
Когда я добавить эту запись в Pom:Как добавить Class-Path в файле манифеста с мавена

<Class-Path>.</Class-Path> 

Это создаст Class-Path со всеми зависимости
Как:
Class-Path:. jar1name.jar jar2name.jar и т. д.
Вместо
Class-Path:.
Есть ли способ избежать maven от добавления всех имен jar в Class-Path?
Благодаря

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
        </manifest> 
        <manifestEntries> 
         <Built-By>Me</Built-By> 
      <Class-Path>.</Class-Path> 
        </manifestEntries> 
       </archive> 
      </configuration> 
     </plugin> 
+1

Как правило, баночки, которые вы не хотите использовать в пути к классам во время выполнения, помечены как «предоставленные», разрешает ли ваш случай? –

+0

Я не хочу, чтобы в манифесте была какая-либо баночка в классе-манифестах, предоставлена ​​или нет, я просто хочу вывести «.». – user648026

ответ

17

Это сделал трюк
Опуская addClasspath и добавление manifestEntries
Теперь log4j.properties может находиться за пределами банку - и все еще можно найти ...

   <manifest> 
        <addClasspath>true</addClasspath> 
       </manifest> 

Это работает:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifestEntries> 
         <Built-By>Me</Built-By> 
      <Class-Path>.</Class-Path> 
        </manifestEntries> 
       </archive> 
      </configuration> 
     </plugin> 

Выход:

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Build-Jdk: 1.6.0_45 
Built-By: Me 
Class-Path: . 
Смежные вопросы