Для автономного сценария вы можете просто использовать Gradle (или Maven) для создания толстого (то есть имеет все зависимости, включая встроенный Jetty сервер), исполняемый файл jar. Вот простой файл build.gradle
, который делает именно это:
apply plugin: 'java'
apply plugin: 'application'
// TODO Change this to your class with your main method
mainClassName = "my.app.Main"
defaultTasks 'run'
repositories {
mavenCentral()
}
dependencies {
compile group: 'com.sparkjava', name: 'spark-core', version: '2.5.5'
// TODO add more dependencies here...
}
// Create a fat executable jar
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
archiveName "app.jar"
}
Создайте свое приложение в командной строке через gradle build
. Это создаст файл app.jar
в вашей папке build/libs
, а затем просто запустите:
java -jar build/libs/app.jar
Если вы действительно хотите быть в курсе последних событий :), вам нужно использовать Docker для упаковки JRE и jar приложения. , таким образом, вы не зависите от программного стека, установленного на сервере. Для этого мы можем использовать Dockerfile
:
FROM java:8
ADD build/libs/app.jar /
EXPOSE 4567
ENTRYPOINT ["java", "-jar", "app.jar"]
Создайте образ докера и запустите его, например:
docker build -t myapp:v1 .
docker run --rm --name myapp -p 4567:4567 myapp:v1
Конечно, если вы хотите использовать образ Docker на удаленном веб-сервере, вам нужно отправить его в Docker Hub. или частный репозиторий докеров и используйте docker pull
, чтобы загрузить его на свой сервер перед запуском.
person
DevNG
schedule
28.04.2017