1.对于maven构建spring-boot web工程。pom.xml
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.gitv.bi</groupId>
<artifactId>hadoop</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>hadoop-internal-api</artifactId>
<name>hadoop-internal-api</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
</properties>
<build>
<finalName>hadoop-internal-api-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<!-- get all project dependencies -->
<!-- <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs> -->
<!-- MainClass in mainfest make a executable jar -->
<!-- <archive> <manifest> <mainClass>cn.gitv.bi.internal.api.Application</mainClass>
</manifest> </archive> -->
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.3</version>
<configuration> <skip>true</skip> </configuration> </plugin> -->
</plugins>
<!-- <resources> <resource> <directory>src/main/resources</directory> <includes>
<include>spring/</include> <include>properties/*</include> <include>spring/*</include>
<include>log4j.properties</include> <include>*.xml</include> </includes>
<filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory>
<includes> <include>properties/</include> </includes> <filtering>true</filtering>
</resource> </resources> -->
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId>
<version>3.1.1.RELEASE</version> <type>jar</type> <scope>compile</scope>
<exclusions> <exclusion> <artifactId>spring-core</artifactId> <groupId>org.springframework</groupId>
</exclusion> </exclusions> </dependency> <dependency> <groupId>cn.gitv.ibci.swift</groupId>
<artifactId>swift-clone</artifactId> <version>1.0-SNAPSHOT</version> </dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cn.gitv.bi</groupId>
<artifactId>hadoop-hbase-dao</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.gitv.bi</groupId>
<artifactId>hadoop-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<!-- <profiles> <profile> <id>bi-v3.0-statistic</id> <activation> <activeByDefault>true</activeByDefault>
</activation> <properties> </properties> </profile> </profiles> -->
</project>
- assembly.xml
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<!-- <id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>/lib</directory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>false</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets> -->
<id>bin</id>
<formats>
<format>tar.gz</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<!-- <fileSet>
<directory>${project.build.directory}/classes</directory>
<outputDirectory>conf</outputDirectory>
</fileSet> -->
<fileSet>
<directory>src/main/resources/scripts</directory>
<outputDirectory>bin</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
</dependencySet>
</dependencySets>
</assembly>
- 运行脚本 run.sh
#!/bin/bash
SCRIPT_HOME=$(dirname $(readlink -f $0))
bash -ex $SCRIPT_HOME/startup.sh 9000
4.startup.sh
#!/bin/bash
JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xmn384m -XX:MaxPermSize=64m \
-Xss256k -XX:+UseConcMarkSweepGC \
-XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=5 \
-XX:+UseCMSCompactAtFullCollection \
-XX:+PrintGC -Xloggc:/data/bi/hadoop-internal-api/logs/gc.log"
PHOME=$(dirname `readlink -f "$0"`)
PHOME=$(dirname $PHOME)
pid=`ps -eo pid,args | grep hadoop-internal-api | grep 9000 | grep java | grep -v grep | awk '{print $1}'`
if [ -n "$pid" ]
then
kill -3 ${pid}
kill ${pid} && sleep 3
if [ -n "`ps -eo pid | grep $pid`" ]
then
kill -9 ${pid}
fi
echo "kill pid: ${pid}"
fi
java $JAVA_OPTS -cp $PHOME/conf:$PHOME/lib/* cn.gitv.bi.internal.api.Application $1 > /dev/null 2>&1 &
注意:如果是从windows写的脚本放到linux上
由于windows下对文本文件的保存格式与unix下不同造成的,windows下回车的字符是’\r\n’,而linux下是’\n’。
head -1 run.sh |od -c
可以看到
需要运行命令转换格式
dos2unix run.sh
dos2unix startup.sh
本文详细介绍了如何使用Maven构建Spring Boot Web工程,包括配置pom.xml,创建assembly.xml用于打包,以及编写run.sh和startup.sh脚本进行启动。特别提醒,如果从Windows环境移植到Linux,需注意脚本格式转换。
824

被折叠的 条评论
为什么被折叠?



