java - OpenShift:无法将 Jenkins 在 Openshift 中生成的 war 部署到另一个设备中的容器 (Tomcat)

标签 java maven tomcat jenkins openshift

首先,让我通知你,这个问题与OPENSHIFT有关。我厌倦了用 Jenkins 构建 war,然后手动将新建的 war 文件传输到服务器——这很耗时。

我正在尝试以一种方式部署从 Jenkins 构建的 Maven 应用程序,并将其部署到以另一种方式运行的 TOMCAT 7 服务器中。

在 Jenkins 构建后,我正在使用通过 Jenkins 部署容器插件将我的 war 文件推送到 TOMCAT 服务器。在 tomcat 服务器中,我编辑了 tomcat-users.xml。

<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager"/>

我尝试使用可用的 JBoss AS 7 来部署它。但也无法部署 - 因此决定切换到 Tomcat,希望在 tomcat 中的部署比在 JBoss 中的部署更容易。

最佳答案

以下是使用 Jenkins/execute shell 执行此操作的方法: (这是使用 Java/Maven 的示例,但您可以将它用于任何其他堆栈。)

source $OPENSHIFT_CARTRIDGE_SDK_BASH
## Aliasing rsynch
alias rsync="rsync --delete-after -az -e '$GIT_SSH'"

## OPENSHIFT_NAMESPACE => redrumapi
## Setting upstream SSH
upstream_ssh="${OPENSHIFT_APP_UUID}@apiserver1-${OPENSHIFT_NAMESPACE}.rhcloud.com"

## Remove previous metadata, if any
rm -f $OPENSHIFT_HOMEDIR/app-deployments/current/metadata.json

#if ! marker_present "force_clean_build"; then
  # don't fail if these rsyncs fail
  #set +e
  rsync $upstream_ssh:'$OPENSHIFT_BUILD_DEPENDENCIES_DIR' $OPENSHIFT_BUILD_DEPENDENCIES_DIR
  rsync $upstream_ssh:'$OPENSHIFT_DEPENDENCIES_DIR' $OPENSHIFT_DEPENDENCIES_DIR
  #set -e
#fi

## Build/update libs and run user pre_build and build
##gear build

cd $OPENSHIFT_DATA_DIR
echo -e "<settings><localRepository>$OPENSHIFT_DATA_DIR.m2</localRepository></settings>" > settings.xml
cd $WORKSPACE
git pull origin master
## Build your project with the settings.xml and other switches that you might need (or not?)
mvn clean install -s $OPENSHIFT_DATA_DIR/settings.xml -P openshift -Djacoco.skip=true -DskipTests -Dbuild.number=${BUILD_NUMBER}


deployment_dir=`$GIT_SSH $upstream_ssh 'gear create-deployment-dir'`

rsync $WORKSPACE/redrum-web/target/your_project.war $upstream_ssh:app-root/runtime/repo/webapps
$GIT_SSH $upstream_ssh "gear remotedeploy --trace --deployment-datetime $deployment_dir"

关于java - OpenShift:无法将 Jenkins 在 Openshift 中生成的 war 部署到另一个设备中的容器 (Tomcat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286375/

相关文章:

java - 为什么Android中的调用栈是8KB?

java - twitter4j 地理流媒体 新加坡及其他地区的纬度/经度

java - 从 Plexus 获取 Maven 实例

java - 类型 [类名] 的方法未定义

Java:来自资源中pdf文件的inputStream = null

java - 通过setter方法注入(inject)EJB

java - 正确设置SonarQube以覆盖代码

maven - 如何结合neo4j和elasticsearch

android - 无法通过 USB 网络共享连接到 Tomcat

java - JSP 子目录问题 -- 无法编译 jsp