или старый

могу указать outputDirectory только для упаковки банку?

http://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html это показывает все параметры, но как я могу установить их в командной строке или pom.xml?

Ответы на вопрос(3)

Вместо создания профиля и использованияmvn всегда-P Переключатель, я хотел бы использовать другой способ, который делает значение по умолчанию свойства $ {dir}.

Просто определите${dir}значение по умолчанию как${project.build.directory}

<properties>
    <dir>${project.build.directory}</dir>
</properties>

и так же, как @Sean Patrick Floyd, установите outputDirectory.

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
            <outputDirectory>${dir}</outputDirectory>
        </configuration>
    </plugin>
</plugins>

Теперь вы можете сделать

# everything goes in someOtherDir instead of target
mvn clean install -Ddir=someOtherDir

или старый

# everything goes in target
mvn clean install
Решение Вопроса

в командной строке

-DoutputDirectory=<path>

и в pom.xml

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.3.1</version>
      <configuration>
        <outputDirectory>/my/path</outputDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>
 Sean Patrick Floyd21 янв. 2011 г., 11:38
Вы можете указать некоторые параметры в командной строке, используя системные свойства, для других вы должны использовать хитрости (см. мой ответ)
 lweller21 янв. 2011 г., 11:47
@ Шон Патрик Флойд, ты прав (я голосовал за твой ответ;)
 Bastl21 янв. 2011 г., 11:02
Я уже пробовал: mvn -DoutputDirectory = / tmp пакет безуспешно. как я могу сказать mvn, что эта опция должна использоваться целью jar: jar?
 lweller21 янв. 2011 г., 11:05
в командной строке я думаю, что вы не можете указать его для плагина signel
 Bastl21 янв. 2011 г., 11:14
Благодарю. это был мой первый вопрос по stackoverflow. Я впечатлен временем отклика :-)
Выражения параметров

Документация по параметрам указывает, что параметр инициализируется значением свойства${project.build.directory} (это свойство ссылается на целевую папку)

Вот что это значит:

Для моджо, которые предназначены для выполнения непосредственно из CLI, их параметры обычно предоставляют средства для настройки через системные свойства вместо<configuration/> раздел в ПОМ. В документации плагина для этих параметров будет указано выражение, обозначающее системные свойства конфигурации. В приведенном выше mojo параметр url связан с выражением${query.url}это означает, что его значение может быть указано системным свойствомquery.url как показано ниже:

mvn myquery:query -Dquery.url=http://maven.apache.org

Ссылка:

Руководство по настройке плагинов> Общая конфигурацияНастройка $ {project.build.directory}

Тем не мение,${project.build.directory} не является системным свойством,это собственность изпроект«sBuild объект.

Вы не можете установить внутренние свойства maven непосредственно в командной строке, но вы можете сделать это с небольшим фокусом, добавив заполнители в ваш pom.xml:

<build>
    <directory>${dir}</directory>
</build>

Теперь выходной каталог устанавливается через свойство из командной строки (используя-Ddir=somedirectory). Недостаток: теперь вы всегда должны использовать-Ddir параметр в командной строке.

Использование профилей

Но здесь есть и помощь. Просто используйте профиль, если вы хотите настроить каталог:

<profiles>
    <profile>
        <id>conf</id>
        <build>
            <directory>${dir}</directory>
        </build>
    </profile>
</profiles>

Теперь вы можете сделать

# everything goes in someOtherDir instead of target
mvn clean install -Pconf -Ddir=someOtherDir

или старый

# everything goes in target
mvn clean install
Настройка Jar-плагина

Теперь, если вы просто хотите изменить jar outputDirectory из командной строки, не перенаправляя все из target, мы изменим профиль, чтобы настроить плагин из свойства командной строки:

<profiles>
    <profile>
        <id>conf</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3.1</version>
                    <configuration>
                        <outputDirectory>${dir}</outputDirectory>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Использование идентично приведенному выше:

# everything goes in someOtherDir instead of target
mvn clean install -Pconf -Ddir=someOtherDir
 Jayz26 янв. 2013 г., 05:02
+1 за хорошее подробное объяснение

Ваш ответ на вопрос