`
sunxboy
  • 浏览: 2869927 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

maven deploy configuration

阅读更多

in pom.xml, the config will be below:

<repositories>
		<repository>
			<id>com.nomura.xxx</id>
			<url>http://XXXXXXX:8080/archiva/repository</url>
		</repository>
	</repositories>



	
	<distributionManagement>
		<repository>
			<id>XXXX.release</id>
			<name>xxxxRelease Repository</name>
			<url>http://XXXXX/archiva/repository/release/</url>
		</repository>
		<snapshotRepository>
			<id>XXXXX.snapshot</id>
			<name>Internal Snapshot Repository</name>
			<url>http://XXXXX/archiva/repository/snapshot/</url>
		</snapshotRepository>
	</distributionManagement>

 

In the app workspace, you can input the command:

mvn deploy

 

to deploy the app into the share server.

 

And in the server that run the app, you can run below script to get app package.
deploy APPNAME VERSION

 

the scripts content will be :

 

#!/bin/bash

set -e
set -u

OUR_HOME="`dirname "$0"`/"

REPO_ROOT="http://XXXXX/archiva/repository/"

COMPONENT="$1"
VERSION="$2"


echo "Using REPO_PREFIX: $REPO_PREFIX"

INSTALL_ROOT="${HOME}"
INSTALL_COMPONENT_ROOT="${INSTALL_ROOT}/${COMPONENT}"

mkdir -p "${INSTALL_COMPONENT_ROOT}"

TMP_DIR=/tmp/VenomComponentZip/${COMPONENT}-`date -u "+%Y-%m-%d-%H:%M:%S.%N"`
mkdir -p $TMP_DIR


########################################
# Special handling for TomCat Components
########################################
if [ ${COMPONENT} == "FXAllocationsUI" -o ${COMPONENT} == "TraderClientPnL" ] ; then

    wget -nv -P ${INSTALL_COMPONENT_ROOT} "${REPO_ROOT}/${REPO_PREFIX}/${COMPONENT}/${VERSION}/${COMPONENT}-${VERSION}.war"
    pushd $INSTALL_COMPONENT_ROOT
    rm -f ${COMPONENT}.war
    ln -s ${COMPONENT}-${VERSION}.war ${COMPONENT}.war

    rm -rf $TMP_DIR

    exit
fi


##################################
# Special handling foHome
##################################
if [[ ${COMPONENT} == "xxxHome" ]]
    then
    #Special handling for xxxHome which is not a Java component
    case $USER in
    eufxcdev)
        ENVIRONMENT=dev
        ENVIRONMENT_NAME=test.ln;;
    eufxcstg)
        ENVIRONMENT=stage
        ENVIRONMENT_NAME=stage.ln;;
    eufxcprd)
        ENVIRONMENT=prod
        ENVIRONMENT_NAME=prod.ln;;
    *)
        echo "Error calculating environment based on current user $USER"
        EXIT 3
    esac

    xxxHOME_ZIP_FILENAME=${COMPONENT}-${VERSION}-${ENVIRONMENT}.zip

    wget -nv -P $TMP_DIR "${REPO_ROOT}/${REPO_PREFIX}/${COMPONENT}/${VERSION}/${xxxHOME_ZIP_FILENAME}"

    unzip -d $TMP_DIR $TMP_DIR/$xxxHOME_ZIP_FILENAME "xxxHome/$ENVIRONMENT_NAME/*"

    TARGET_DIRECTORY=$INSTALL_COMPONENT_ROOT/${ENVIRONMENT_NAME}-$VERSION

    if [ -e "$TARGET_DIRECTORY" ] ; then
        echo "xxxHome version is already deployed. Delete it if you want a redeploy: $TARGET_DIRECTORY"
        echo "Please manually remove the soft link from the home directory and point to the required version."
        exit 26
    fi

    mv $TMP_DIR/xxxHome/$ENVIRONMENT_NAME $TARGET_DIRECTORY

    if [[ $ENVIRONMENT == "dev" ]]
    then
        echo "Not setting soft link $ENVIRONMENT_NAME. In the development environment, xxxHome is taken from SVN"
    else
        echo "Deleting and recreating soft link: $ENVIRONMENT_NAME"
        pushd $INSTALL_COMPONENT_ROOT
        rm -f ${ENVIRONMENT_NAME}
        ln -s ${ENVIRONMENT_NAME}-$VERSION ${ENVIRONMENT_NAME}
    fi

    rm -rf $TMP_DIR

    exit #Finished processing for xxxHome
fi
########################################
# END - Special handling for xxxHome
########################################


wget -nv -P $TMP_DIR "${REPO_ROOT}/${REPO_PREFIX}/${COMPONENT}/${VERSION}/${COMPONENT}-${VERSION}-Server.zip"

unzip "$TMP_DIR/${COMPONENT}-${VERSION}-Server.zip" -d "${INSTALL_COMPONENT_ROOT}"
$OUR_HOME/moveJarsToShared ${INSTALL_COMPONENT_ROOT}/${COMPONENT}-${VERSION}/lib ${COMPONENT}-${VERSION}

if [ $? -eq 0 ] ; then
    function noSelector {
        echo "No Selector zip for this project"
        NO_SELECTOR=true
    }
    #Don't fail and exit the script if we get a 404 on the file. It's a valid condition to have no selector zip.
    NO_SELECTOR=false
    wget -nv -q -P $TMP_DIR "${REPO_ROOT}/${REPO_PREFIX}/${COMPONENT}/${VERSION}/${COMPONENT}-${VERSION}-Selector.zip" || noSelector

    if [ $NO_SELECTOR == false ] ; then
        echo "Selector zip is present"
        unzip "$TMP_DIR/${COMPONENT}-${VERSION}-Selector.zip" -d "${INSTALL_COMPONENT_ROOT}"
    fi

    echo "Creating soft link called live pointing to the newly deployed version"
    pushd ${INSTALL_COMPONENT_ROOT}
    rm -f live
    ln -s ${COMPONENT}-$VERSION live
    popd
fi

rm -rf $TMP_DIR
 

 

分享到:
评论

相关推荐

    maven 过滤文件夹打包

    在软件开发过程中,尤其是Java应用,Maven是一个广泛使用的构建工具,它可以帮助开发者自动化构建、测试和部署项目。"maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的...

    Windoiws的maven3.8.8

    - **deploy**: 将最终的包部署到远程仓库。 ### 六、Maven依赖管理 Maven通过`pom.xml`文件来管理项目的依赖关系。在`pom.xml`中声明依赖后,Maven会自动从远程仓库下载这些依赖并将其放入本地仓库。例如: ```...

    maven plugin打包下载

    在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了构建过程。Maven Plugin则是Maven中的一个重要组成部分,用于执行特定的任务,如编译、测试、打包、部署等。本篇文章将深入探讨...

    Maven3实战笔记04Maven的生命周期和插件

    - **maven-deploy-plugin**:负责将构建好的包部署到远程仓库。 #### Maven生命周期与插件的关系 在Maven的生命周期中,每个阶段都可以绑定一个或多个插件的目标。当Maven执行到某个阶段时,会自动调用绑定在这个...

    Maven常用插件整理.docx

    7. Maven Deploy Plugin Deploy Plugin用于部署最终的构建产物到远程仓库,供其他项目使用。 8. Maven Site Plugin Site Plugin生成项目的站点文档,包括报告、项目信息和团队信息等。 9. Maven Dependency Plugin...

    android maven

    1. 使用Maven命令行进行编译和打包操作,如`mvn install`用于编译项目,`mvn android:deploy`用于部署到设备或模拟器,`mvn android:release`用于生成签名的APK。 2. 通过配置`&lt;goals&gt;`参数,可以在Android Studio...

    maven-eclipse-plugin

    Maven通过一组预定义的生命周期阶段(如clean、compile、test、package、install和deploy)来管理项目的构建。maven-eclipse-plugin插件则是在这个生命周期中的特定阶段执行,例如`eclipse:eclipse`目标用于生成...

    maven仓库插件

    &lt;artifactId&gt;maven-deploy-plugin &lt;version&gt;3.0.0-M1 &lt;configuration&gt; &lt;!-- 配置项,如远程仓库URL、用户名、密码等 --&gt; &lt;/configuration&gt; &lt;id&gt;deploy &lt;phase&gt;deploy &lt;goal&gt;deploy ``` **...

    maven3.3.9个和maven配置步骤

    3. **构建设置**:在 `Build Configuration` 中,你可以配置构建时使用的 Maven 命令行参数,如 `-DskipTests` 来跳过测试。 4. **Maven 插件**:STS 提供了内置的 Maven 插件支持,可以直接在 IDE 内部执行 Maven ...

    Maven +Tomcat+m2eclipse的热部署(hot deploy)

    热部署(Hot Deploy),即在不重启服务器的情况下更新应用程序的功能,对于提升开发效率至关重要。本文将详细阐述如何在特定的软件版本下(Maven 2.2、Tomcat 6.0 和 Eclipse 3.4)实现这一目标。 #### 步骤详解 *...

    maven插件及其使用方法

    Maven生命周期包括清理(clean)、初始化(initialize)、构建(compile)、测试(test)、打包(package)、验证(verify)、集成测试(integration-test)、安装(install)和部署(deploy)九个阶段。每个阶段都...

    apache-maven-3.3.3-bin.rar

    此外,Maven还提供了丰富的生命周期和构建阶段,如编译(compile)、测试(test)、打包(package)、部署(deploy)等,以及插件系统,可以扩展Maven的功能以满足各种特定的构建需求。 随着时间的推移,Apache ...

    maven代码自动将本地仓库中的包上传到maven私服

    总之,通过正确配置Maven的`pom.xml`和`settings.xml`文件,以及执行`mvn deploy`命令,可以实现将本地仓库中的包自动上传到Maven私有仓库。这对于团队协作和代码管理非常有用,确保所有成员都能访问到最新的内部...

    maven学习.zip

    生命周期分为多个阶段(Phases),如`validate`, `compile`, `test`, `package`, `install` 和 `deploy`。每个阶段都有一系列默认绑定的目标。当执行一个生命周期阶段时,它会触发所有绑定到该阶段的目标。 **4. ...

    Maven插件及安装方法

    6. **maven-deploy-plugin**: 部署构建结果到远程仓库。 **Maven的安装步骤** 1. **下载Maven**: 访问Apache Maven官方网站下载最新版本的Maven,通常选择binaries zip文件。 2. **解压Maven**: 将下载的zip文件...

    Maven各组件整合包.zip

    8. **maven-deploy-plugin-2.7.jar**:部署插件,将项目发布到远程仓库,供他人使用。 三、插件的使用与配置 在Maven的settings.xml或pom.xml文件中,可以通过标签来配置这些插件,设定其执行的生命周期阶段、目标...

    maven常用命令以及以个测试项目

    Maven的生命周期分为几个阶段,如compile、test、package、install、deploy等,你可以直接执行这些阶段,例如`mvn install`就包含了compile、test和package阶段。 ### Maven测试项目 在“test”这个文件中,通常...

    maven中文指导 学maven的很好一本参考书

    Maven的生命周期包括清理(clean)、初始化(initialize)、构建(compile)、测试(test)、打包(package)、验证(verify)、安装(install)和部署(deploy)等阶段。 《Maven中文指导》这本书将详细解释这些...

    使用GitHub搭建Maven私库

    &lt;artifactId&gt;maven-deploy-plugin &lt;version&gt;2.8.2 &lt;configuration&gt; &lt;repositoryId&gt;maven-repops &lt;url&gt;https://maven.pkg.github.com/yourusername/maven-repops&lt;/url&gt; &lt;/configuration&gt; ``` - **...

Global site tag (gtag.js) - Google Analytics