• 项目抛弃Tomcat容器,用代码启动Tomcat插件


    tomato启动代码如下:

    package tomcat;
    
    import org.apache.catalina.connector.Connector;
    import org.apache.catalina.startup.Tomcat;
    
    /**
     * The Class StartMainTomcat.
     * 
     * @author nibili
     */
    public class StartTomcat {
    
    	/** The Constant PORT. */
    	public static final int PORT = 80;
    
    	/** The Constant CONTEXT. */
    	public static final String CONTEXT = "";
    
    	/**
    	 * The main method.
    	 * 
    	 * @param args
    	 *            the arguments
    	 * @throws Exception
    	 *             the exception
    	 */
    	public static void main(String[] args) throws Exception {
    		System.setProperty("catalina.base", System.getProperty("user.dir") + "/target");
    		System.setProperty("log.sql.port", "80");
    		Tomcat server = new Tomcat();
    		server.setBaseDir(System.getProperty("catalina.base"));
    		server.setPort(PORT);
    		server.addWebapp(CONTEXT, System.getProperty("user.dir") + "/src/main/webapp");
    		Connector connector = server.getConnector();
    		connector.setURIEncoding("UTF-8");
    		server.start();
    		System.out.println("Hit Enter in console to stop server");
    		if (System.in.read() != 0) {
    			server.stop();
    			System.out.println("Server stopped");
    		}
    	}
    }
    

      

    需要的maven的jar包如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>cn.com.easy</groupId>
        <artifactId>company-yyg-web-front</artifactId>
        <packaging>war</packaging>
        <version>0.1.0</version>
        <name>yyg-web-front</name>
        <repositories>
            <repository>
                <id>public</id>
                <url>http://120.76.29.54:8080/nexus/content/groups/public/</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
            <repository>
                <id>central</id>
                <name>Maven Central Repository</name>
                <url>https://repo1.maven.org/maven2/</url>
            </repository>
            <repository>
                <id>file-repo</id>
                <name>Local file Repository</name>
                <url>file://${project.basedir}/lib</url>
                <releases>
                    <enabled>true</enabled>
                    <checksumPolicy>ignore</checksumPolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <checksumPolicy>ignore</checksumPolicy>
                </snapshots>
            </repository>
        </repositories>
    
        <properties>
            <!-- 主要依赖库的版本定义 -->
            <spring.version>4.0.9.RELEASE</spring.version>
            <tomcat.version>7.0.55</tomcat.version>
            <slf4j.version>1.7.7</slf4j.version>
            <log4j.version>1.2.17</log4j.version>
            <hibernate.version>4.3.6.Final</hibernate.version>
            <httpclient.version>4.3.5</httpclient.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <!-- 微信开发包 -->
            <dependency>
                <groupId>com.github.sd4324530</groupId>
                <artifactId>fastweixin</artifactId>
                <version>1.3.10</version>
            </dependency>
            <!-- 开源工具包 -->
            <dependency>
                <groupId>cn.com.easy</groupId>
                <artifactId>easy-commons</artifactId>
                <version>0.1.0-SNAPSHOT</version>
            </dependency>
            <!-- 验证码 -->
            <dependency>
                <groupId>com.github.cage</groupId>
                <artifactId>cage</artifactId>
                <version>1.0</version>
            </dependency>
            <!-- mysql 驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.31</version>
            </dependency>
            <!-- 连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.9</version>
            </dependency>
            <!-- 阿里短信接口 -->
            <dependency>
                <groupId>ali</groupId>
                <artifactId>sdk</artifactId>
                <version>0.1.0</version>
            </dependency>
            <!-- assembly -->
            <dependency>
                <groupId>tanukisoft</groupId>
                <artifactId>jsw</artifactId>
                <version>3.5.4</version>
                <scope>provided</scope>
                <type>zip</type>
            </dependency>
            <!-- qq接口 -->
            <dependency>
                <groupId>qq</groupId>
                <artifactId>Sdk4j</artifactId>
                <version>0.1.0</version>
            </dependency>
            <!-- spring start -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-logging</artifactId>
                        <groupId>commons-logging</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>1.6.2.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <!-- spring end -->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.6.12</version>
            </dependency>
            <!-- mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.8</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>com.github.miemiedev</groupId>
                <artifactId>mybatis-paginator</artifactId>
                <version>1.2.17</version>
            </dependency>
            <!-- mybatis end -->
            <!-- utils -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.1</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>18.0</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.4.2</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>2.4.2</version>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.2</version>
            </dependency>
            <!-- logging -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet.jsp.jstl</groupId>
                <artifactId>javax.servlet.jsp.jstl-api</artifactId>
                <version>1.2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-impl</artifactId>
                <version>1.2.1</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity</artifactId>
                <version>1.7</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk16</artifactId>
                <version>1.46</version>
            </dependency>
            <dependency>
                <groupId>org.jdom</groupId>
                <artifactId>jdom</artifactId>
                <version>2.0.2</version>
            </dependency>
            <!-- google 生成 二维码 -->
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>javase</artifactId>
                <version>3.1.0</version>
            </dependency>
            <!-- Tomcat 7 -->
            <dependency>
                <!-- Eclipse JDT Java compiler -->
                <groupId>org.eclipse.jdt.core.compiler</groupId>
                <artifactId>ecj</artifactId>
                <version>4.4</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-core</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-util</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-annotations-api</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Interfaces shared by Catalina and Jasper -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-api</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Tomcat Catalina implementation -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-catalina</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Tomcat connectors and utility -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-coyote</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Servlet 3.0 API -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-servlet-api</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- JSP 2.2 API -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jsp-api</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- EL 2.2 API -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-el-api</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Jasper 2 Compiler and Runtime -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jasper</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Jasper 2 EL implementation -->
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jasper-el</artifactId>
                <version>${tomcat.version}</version>
                <scope>provided</scope>
            </dependency>
    
    
            <!-- test -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.10.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml-schemas</artifactId>
                <version>3.10.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.10.1</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    
        <profiles>
            <profile>
                <id>package-bin</id>
                <activation>
                    <property>
                        <name>package.bin</name>
                        <value>true</value>
                    </property>
                </activation>
                <build>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-assembly-plugin</artifactId>
                            <executions>
                                <execution>
                                    <phase>package</phase>
                                    <goals>
                                        <goal>single</goal>
                                    </goals>
                                    <configuration>
                                        <descriptors>
                                            <descriptor>assembly/assembly-production.xml</descriptor>
                                        </descriptors>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </build>
            </profile>
        </profiles>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>7.6.11.v20130520</version>
                    <configuration>
                        <scanIntervalSeconds>
                            2
                        </scanIntervalSeconds>
                        <useFileMappedBuffer>false</useFileMappedBuffer>
                        <systemProperties>
                            <systemProperty>
                                <name>spring.profiles.active</name>
                                <value>development</value>
                            </systemProperty>
                        </systemProperties>
                        <useTestClasspath>true</useTestClasspath>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <argLine>-Xmx256M</argLine>
                        <includes>
                            <include>**/*Test.java</include>
                        </includes>
                        <useSystemClassLoader>false</useSystemClassLoader>
                    </configuration>
                </plugin>
                <!-- cobertura插件 -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <instrumentation>
                            <excludes>
                                <exclude>**/entity/**/*.class</exclude>
                            </excludes>
                        </instrumentation>
                    </configuration>
                </plugin>
    
                <!-- eclipse插件,设定下载Source并屏幕svn文件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.9</version>
                    <configuration>
                        <sourceExcludes>
                            <sourceExclude>**/.svn/</sourceExclude>
                        </sourceExcludes>
                        <downloadSources>false</downloadSources>
                        <downloadJavadocs>false</downloadJavadocs>
                        <wtpversion>2.0</wtpversion>
                        <additionalProjectnatures>
                            <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                        </additionalProjectnatures>
                    </configuration>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <!-- <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> 
                    <version>2.2</version> <configuration> <url>http://112.74.105.129/manager/text</url> 
                    <username>yishangjia</username> <password>esga1234</password> <path>/ROOT</path> 
                    </configuration> </plugin> -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <uriEncoding>UTF-8</uriEncoding>
                        <path>/</path>
                    </configuration>
                </plugin>
                <!--将class文件打成jar -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <!-- 释放将项目的类文件打成jar放到lib目录中。 打成jar的好处是:只修改class时,可以只更新jar。 -->
                        <archiveClasses>true</archiveClasses>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.samaxes.maven</groupId>
                    <artifactId>minify-maven-plugin</artifactId>
                    <version>1.7.5</version>
                    <executions>
                        <execution>
                            <id>assets-minify</id>
                            <phase>process-resources</phase>
                            <configuration>
                                <!-- css -->
                                <cssEngine>YUI</cssEngine>
                                <cssSourceDir>assets</cssSourceDir>
                                <cssSourceIncludes>
                                    <cssSourceInclude>styles/**/**.css</cssSourceInclude>
                                </cssSourceIncludes>
                                <!-- <cssSourceExcludes> <cssSourceExclude>vendors/**.css</cssSourceExclude> 
                                    </cssSourceExcludes> -->
                                <!-- js -->
                                <jsEngine>CLOSURE</jsEngine>
                                <jsSourceDir>assets</jsSourceDir>
                                <jsSourceIncludes>
                                    <jsSourceInclude>scripts/**/**.js</jsSourceInclude>
                                </jsSourceIncludes>
                                <!-- <jsSourceExcludes> <jsSourceExclude>vendors/**/*.min.js</jsSourceExclude> 
                                    </jsSourceExcludes> -->
                                <!-- others -->
                                <skipMerge>true</skipMerge>
                                <nosuffix>true</nosuffix>
                                <verbose>false</verbose>
                            </configuration>
                            <goals>
                                <goal>minify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <warSourceExcludes>assets/styles/**/**.css,assets/scripts/**/**.js</warSourceExcludes>
                        <warName>${project.artifactId}</warName>
                    </configuration>
                </plugin>
    
            </plugins>
            <testResources>
                <testResource>
                    <directory>src/test/resources</directory>
                    <filtering>true</filtering>
                </testResource>
                <testResource>
                    <directory>src/main/webapp</directory>
                    <filtering>true</filtering>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </testResource>
            </testResources>
        </build>
    
    </project>

    classpath文件是:

    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" output="target/classes" path="src/main/java"/>
        <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
        <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
        <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
        <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/main/webapp"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
        <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
        <classpathentry kind="output" path="target/classes"/>
    </classpath>

    普通项目需要导入对应的jar包,

    然后右击,run as java application 即可启动项目;

  • 相关阅读:
    PowerToys插件扩展(类似Alfred)
    .net打独立运行环境遇到无法trim遇到的bug
    blazor wasm开发chrome插件
    将php代码部署到新浪云测试(简单方法,包含数据库的连接)
    python修改csv某一列的内容
    windows10调用libcurl
    Java动态脚本Groovy,高级啊!
    Linux 配置Git
    Java动态脚本Groovy读取配置文件
    Java动态脚本Groovy获取Bean(奇淫技巧操作)
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/7601509.html
Copyright © 2020-2023  润新知