Возможно ли запустить команды mvn, если на целевой машине нет maven? Я знаю, что это странно.Как запустить mvn, если на целевой машине нет maven
Возможно ли это с помощью какого-либо инструмента/утилиты-обертки, который имеет инструменты maven/etc, встроенные в инструмент/утилиту обертки?
Это то, чего я пытаюсь достичь. Использование Ansible (и Maven) для получения артефакта в заданную папку с удаленного сервера Artifactory.
- Я хочу загрузить артефакт из Artifactory.
- На целевой машине не установлено maven (mvn).
Если я создаю небольшой скрипт оболочки liner, тогда мне приходится иметь дело со всеми репозиториями один за другим, то есть в некотором порядке (то есть сначала просматривать репозиторий релиза, затем снижаться до моментального снимка и т. Д. Или наоборот).
(WGET http://myArtifactoryServer:somePort/artifactory/libs-snapshot-local/com/company/product/artifactName/version/artifactNameVersion.extension || WGET http://myArtifactoryServer:somePort/artifactory/libs-stage-local/com/company/product/artifactName/version/artifactNameVersion.extension || WGET http://myArtifactoryServer:somePort/artifactory/libs-alpha-local/com/company/product/artifactName/version/artifactNameVersion.extension || Wget http://myArtifactoryServer:somePort/artifactory/libs-beta-local/com/company/product/artifactName/version/artifactNameVersion.extension || Wget http://myArtifactoryServer:somePort/artifactory/libs-gamma-local/com/company/product/artifactName/version/artifactNameVersion.extension || Wget http://myArtifactoryServer:somePort/artifactory/libs-release-local/comcompany/product/artifactName/version/artifactNameVersion.extension)
мне было интересно, если есть какой-либо другой простой способ, я могу захватить артефакт по просто давая «виртуальное имя репо», то есть libs-release (который я создал и просматривал все репозитории физического релиза или просто использовал виртуальные репозитории компании-репозитария, так что мне не нужно называть каждое имя репо один за другим, используя || или Wget).
Мне не нужно использовать wget, если есть какой-либо другой способ. Maven автоматически находит артефакт и выполняет поиск во всех репозиториях (что вы определяете в settings.xml или pom.xml или в командной строке maven-dependency-plugin: get/copy)
Я также могу написать код в groovy, но затем groovy должен быть на целевом сервере.
Вы могли бы посмотреть на Gradle. Преимущество этой темы заключается в том, что вы можете отправить ее с помощью сценария оболочки оболочки градиента и необходимого двоичного кода gradle. Целевая среда не требует установки градуировки. Gradle также правильно обрабатывает репозитории и т. Д. Посмотрите [здесь] (http: // gradle.org/docs/current/userguide/gradle_wrapper.html) для обертки. – u6f6o
Я не на сто процентов уверен, чего вы пытаетесь достичь. [Capsule] (https://github.com/puniverse/capsule) - это проект для создания исполняемых банок, который также поддерживает загрузку зависимостей из хранилищ maven. –
Вы можете использовать [обертку Maven] (https://github.com/takari/maven-wrapper). Но почему бы вам не создать архив tar.gz, содержащий все эти вещи через Maven, и загрузить только файл tar.gz? – khmarbaise