2016-06-06 5 views
0
set homepath=%userprofile% 
set a=%1 
set b=%2 
set c=%3 
set uuid=%4 
set zipDirectory=%5 
set pluginDirectory=%6 
cd %homepath%\%a% 
mvn archetype:generate -DarchetypeCatalog=file://%homepath%/.m2/repository 

Все работает здесь, а затем прекращаются выполнение командных строк. Он не печатает 1 и последующие команды.Пакетный файл прекращает выполнение после команды mvn

1 
c 
b 
c 
%uuid% 
Y 
cd %homepath%\%a%\%b% 
mvn clean install 
cd %homepath%\%a%\%b%\%b%-plugin\target 
jar -xvf %zipDirectory% 
cd %homepath%\%a%\%b%\%b%-plugin\target\META-INF\maven\%c%\%b%-plugin 
copy pom.xml + %pluginDirectory% 
cd %pluginDirectory% 
rename pom.xml %b%-plugin-1.0.0.pom 

Вопрос: Есть ли что-нибудь о мавена я не знаю о том, что прерывает процесс пакетной обработки? Не понимает ли это выполнение команды с одиноким номером 1?

+2

В пакетных файлах в окнах вам нужно запустить 'mvn' и другие командные файлы через' call mvn ... '... – khmarbaise

+0

Прохладный. Это то же самое для команд типа 'jar',' copy' и 'rename'? – santafebound

+0

Хмм ... Даже когда я его называю, он все еще не выполняет '1' непосредственно после команды mvn. – santafebound

ответ

1

При вызове Maven из командного файла для создания нового проекта через архетип вы должны знать о выполнении interactive mode, т. Е. Maven запросит определенные значения или запросит подтверждение.

Похоже, в вашем случае это не желаемое поведение. Таким образом, вы должны передать через командную строку options цели generate и конкретный архетип, а затем запустить либо в пакетном режиме с помощью стандартного варианта Maven -B, либо через -DinteractiveMode=true.

От official documentation вы должны пройти

  • archetypeGroupId, archetypeArtifactId и archetypeVersion определяет архетип использовать для генерации проекта.
  • Основные свойства groupId, artifactId, version и package - основные свойства. Каждый архетип требует этих свойств. Некоторые архетипы определяют другие свойства; обратитесь к документации соответствующего архетипа при необходимости

Таким образом, в вашем случае:

call mvn archetype:generate -DarchetypeCatalog=file://%homepath%/.m2/repository -B \ 
-DarchetypeGroupId=com.sample -DarchetypeArtifactId=artifact -DarchetypeVersion=1.0 \ 
-DgroupId=your.groupid -DartifactId=your.artifactId -Dversion=0.0.1-SNAPSHOT \ 
-Dsomething-else=value 

Примечания: \ добавлены для удобства чтения, вы на самом деле не нужны

+0

Делает смысл. Когда я писал это с помощью AutoItX, я мог имитировать нажатия клавиш, но это другое. Поэтому я предположил, что могу запустить командные строки из пакетного файла в интерактивные входы, если это было неверно. Благодарю. – santafebound

Смежные вопросы