精华内容
下载资源
问答
  • 父子工程说白了就是利用Maven的继承,依赖传递性来为我们省略一些重复的配置,通常配置在父模块中,为子模块提供使用,这样可以做到一处声明,处处使用。 为什么需要继承制(父子工程)? 可能有的人该说了,我写个...

    什么是父子工程

    父子工程说白了就是利用Maven的继承,依赖传递性来为我们省略一些重复的配置,通常配置在父模块中,为子模块提供使用,这样可以做到一处声明,处处使用。

    为什么需要继承制(父子工程)?

    可能有的人该说了,我写个项目打成jar包让另一个项目引入,这样就可以达到依赖统一管理了呀,当然你可能忘了这一点,由于非 compile 范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置。
    假如有三个子项目junit都使用的4.0版本,由于4.9版本出了一些新功能,我们想要让他们全升级到4.9,那么到各个工程中手动修改无疑是非常不可取的。使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。

    <dependency> 
    	<groupId>junit</groupId> 
    	<artifactId>junit</artifactId> 
    	<version>4.0</version> 
    	<scope>test</scope>
    </dependency>
    

    父子工程的创建

    创建父工程

    创建父工程和创建一般的 Java 工程操作一致,唯一需要注意的是:打包方式处要设置为 pom。

    父工程pom文件

    <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>com.gzl.maven</groupId>
    	<artifactId>Parent</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>pom</packaging>
    	
    	<!-- 配置依赖的管理 -->
    	<dependencyManagement>
    		<dependencies>
    			<dependency>
    				<groupId>junit</groupId>
    				<artifactId>junit</artifactId>
    				<version>4.9</version>
    				<scope>test</scope>
    			</dependency>
    		</dependencies>
    	</dependencyManagement>
    	
    </project>
    

    创建子工程为Hello

    pom文件当中不用指定版本号

    <?xml version="1.0" ?>
    <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>
    
    	<artifactId>Hello</artifactId>
    
    	<!-- 子工程中声明父工程 -->
    	<parent>
    		<groupId>com.gzl.maven</groupId>
    		<artifactId>Parent</artifactId>
    		<version>0.0.1-SNAPSHOT</version>
    		
    		<!-- 以当前文件为基准的父工程pom.xml文件的相对路径 -->
    		<relativePath>../Parent/pom.xml</relativePath>
    	</parent>
    
    	<name>Hello</name>
    
    	<dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
    </project>
    

    观察Hello的jar包版本

    展开全文
  • Maven site发布多模块的项目站点

    千次阅读 2019-03-20 09:30:00
    本地生成预览 修改父模块的pom.xml: <site> <id>${project.artifactId}-site</id> <url>file://./</url> </site> 执行 mvn c...

    本地生成预览

    修改父模块的pom.xml:

    <site>
        <id>${project.artifactId}-site</id>
        <url>file://./</url>
    </site>
    

    执行

    mvn clean && mvn site:site && mvn site:stage
    

    目标站点在target/stage目录下面

    部署到服务器

    使用scp协议

    如果使用scp协议,底层使用ssh协议,则需要配置操作系统用户认证

    编辑maven的settings.xml文件,增加一个server配置

    <server>
        <id>xx.xncoding.com</id>
        <username>name</username>
        <password>password</password>
    </server>
    

    修改父模块的pom.xml:

    <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
        <dependencies>
            <dependency><!-- add support for ssh/scp -->
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>3.3.2</version>
            </dependency>
        </dependencies>
    </plugin>
    
    <site>
        <id>xx.xncoding.com</id>
        <url>scp://xx.xncoding.com/data/tomcat/webapps/xx/</url>
    </site>
    

    使用dav协议

    首先需要对tomcat进行配置,开启WebDAV的支持。

    1、在Tomcat的webapps目录下新建security文件夹,并在此文件夹下新建WEB-INF\web.xml文件。内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
        <display-name>security sdk</display-name>
        <servlet>
            <servlet-name>webdav</servlet-name>
            <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
            <!-- Read-Write Access Settings -->
            <init-param>
                <param-name>readonly</param-name>
                <param-value>false</param-value>
            </init-param>
        </servlet>
        <!-- URL Mapping -->
        <servlet-mapping>
            <servlet-name>webdav</servlet-name>
            <url-pattern>/webdav/*</url-pattern>
        </servlet-mapping>
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>webdav</web-resource-name>
                <!-- Detect WebDAV Methods in URL For Whole Application -->
                <url-pattern>/webdav/*</url-pattern>
                <http-method>PROPFIND</http-method>
                <http-method>PROPPATCH</http-method>
                <http-method>COPY</http-method>
                <http-method>MOVE</http-method>
                <http-method>LOCK</http-method>
                <http-method>UNLOCK</http-method>
            </web-resource-collection>
            <!-- Restrict access by role -->
            <auth-constraint>
                <role-name>*</role-name>
            </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>webdav</realm-name>
        </login-config>
        <security-role>
            <description>WebDAV User</description>
            <role-name>webdav</role-name>
        </security-role>
    </web-app>
    

    根据上面权限名称,在Tomcat账号体系中增加账号密码,编辑/conf/tomcat-users.xml,内容如下:

    <role rolename="tomcat"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <role rolename="manager-gui"/>
    <role rolename="webdav"/>
    <user username="tomcat" password="tomcat" roles="tomcat,admin-gui,admin-script,manager-gui,webdav"/>
    

    提示:权限名称必须和web.xml文件配置的一一对应。

    2、然后跟上面一样,去本地配置maven的配置:

    <server>
        <id>xx.xncoding.com</id>
        <username>tomcat</username>
        <password>tomcat</password>
    </server>
    

    然后maven的pom.xml配置:

    <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
        <dependencies>
            <dependency>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-webdav-jackrabbit</artifactId>
                <version>3.2.0</version>
            </dependency>
        </dependencies>
    </plugin>
    
    <site>
        <id>xx.xncoding.com</id>
        <url>dav:https://xx.xncoding.com/security/webdav/</url>
    </site>
    

    配置示例

    主要是两个配置,一个是pom依赖:

    <?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>xx.yy.xncoding.com</groupId>
        <artifactId>xx-sdk</artifactId>
        <packaging>pom</packaging>
        <version>1.0.0-SNAPSHOT</version>
        <modules>
            <module>xx-sdk-base</module>
            <module>xx-sdk-foo</module>
            <module>xx-sdk-bar</module>
        </modules>
        <name>xx-sdk</name>
        <description>description</description>
        <url>http://xx.xncoding.com/</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <servlet-api.version>3.1.0</servlet-api.version>
        </properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                    <version>1.7.25</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>javax.servlet-api</artifactId>
                    <version>${servlet-api.version}</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.11</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
                <plugins>
                    <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.1.0</version>
                    </plugin>
                    <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.22.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.0.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.1.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                    <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
                    <plugin>
                        <artifactId>maven-site-plugin</artifactId>
                        <version>3.7.1</version>
                        <dependencies>
                            <!--
                            <dependency><!-- add support for ssh/scp -->
                                <groupId>org.apache.maven.wagon</groupId>
                                <artifactId>wagon-ssh</artifactId>
                                <version>3.3.2</version>
                            </dependency>
                            -->
                            <dependency>
                                <groupId>org.apache.maven.wagon</groupId>
                                <artifactId>wagon-webdav-jackrabbit</artifactId>
                                <version>3.2.0</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <artifactId>maven-project-info-reports-plugin</artifactId>
                        <version>3.0.0</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    
        <reporting>
            <plugins>
                <plugin>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <failOnError>false</failOnError>
                    </configuration>
                    <reportSets>
                        <reportSet>
                            <id>default</id>
                            <reports>
                                <!--<report>javadoc</report>-->
                            </reports>
                            <configuration>
                                <aggregate>true</aggregate>
                            </configuration>
                        </reportSet>
                        <reportSet><!-- aggregate reportSet, to define in poms having modules -->
                            <id>aggregate</id>
                            <inherited>false</inherited><!-- don't run aggregate in child modules -->
                            <reports>
                                <report>aggregate</report>
                            </reports>
                        </reportSet>
                    </reportSets>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <configuration>
                        <customBundle>${project.basedir}/src/site/custom/project-info-reports.properties</customBundle>
                    </configuration>
                    <reportSets>
                        <reportSet>
                            <reports><!-- select reports -->
                                <report>index</report>
                                <report>summary</report>
                                <report>dependency-info</report>
                                <report>dependency-management</report>
                                <report>modules</report>
                                <report>plugin-management</report>
                                <report>team</report>
                            </reports>
                        </reportSet>
                    </reportSets>
                </plugin>
            </plugins>
        </reporting>
    
        <distributionManagement>
            <snapshotRepository>
                <id>snapshot</id>
                <name>Snapshot</name>
                <url>http://xxxxxxx
                </url>
            </snapshotRepository>
    
            <!--<site>-->
            <!--<id>${project.artifactId}-site</id>-->
            <!--<url>file://./</url>-->
            <!--</site>-->
            <!--
            <site>
                <id>xx.xncoding.com</id>
                <url>scp://xx.xncoding.com/data/tomcat/webapps/xx/</url>
            </site>
            -->
            <site>
                <id>xx.xncoding.com</id>
                <url>dav:https://xx.xncoding.com/security/webdav/</url>
            </site>
        </distributionManagement>
    
        <developers>
            <developer>
                <id>xn</id>
                <name>XN</name>
                <email>xx</email>
                <url>http://www.xncoding.com</url>
                <organization>XX</organization>
                <organizationUrl>http://xx.com</organizationUrl>
                <roles>
                    <role>architect</role>
                    <role>developer</role>
                </roles>
            </developer>
        </developers>
    </project>
    

    然后就是site.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/DECORATION/1.8.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 http://maven.apache.org/xsd/decoration-1.8.0.xsd"
             name="Security SDK">
    
        <bannerLeft>
            <name>Project Name</name>
            <src>https://maven.apache.org/images/apache-maven-project.png</src>
            <href>https://maven.apache.org/</href>
        </bannerLeft>
        <bannerRight>
            <src>https://maven.apache.org/images/maven-logo-black-on-white.png</src>
        </bannerRight>
        <publishDate position="right"/>
        <version position="right"/>
        <poweredBy>
            <logo name="Maven" href="https://maven.apache.org/"
                  img="https://maven.apache.org/images/logos/maven-feather.png"/>
        </poweredBy>
    
        <body>
            <head>
                <![CDATA[<link rel="shotcut icon" href="/security/favicon.ico"/>]]>
                <!-- Workaround for https://issues.apache.org/jira/browse/DOXIA-571 -->
                <![CDATA[<script type="text/javascript">
                    $(document).ready(function () {
                        $(".source").addClass("prettyprint");
                        prettyPrint();
                    });
                </script>]]>
            </head>
            <!--<links>-->
            <!--<item name="Apache" href="http://www.apache.org"/>-->
            <!--<item name="Maven" href="https://maven.apache.org"/>-->
            <!--</links>-->
            <breadcrumbs>
                <item name="Documentation" href="index.html"/>
                <item name="Examples" href="examples/auditlog.html"/>
            </breadcrumbs>
            <menu name="Overview">
                <item name="1 SDK简介" href="index.html" collapse="true">
                </item>
                <item name="2 集成指导" href="integrate.html" collapse="true">
                </item>
                <item name="3 运行日志" href="sdk/run-log/index.html" collapse="true">
                    <item name="3.1 介绍" href="sdk/run-log/introduce.html" collapse="true"/>
                    <item name="3.2 使用方法" href="sdk/run-log/usage.html" collapse="true"/>
                </item>
                <item name="4 审计日志" href="sdk/operation-log/index.html" collapse="true">
                    <item name="4.1 介绍" href="sdk/operation-log/introduce.html" collapse="true"/>
                    <item name="4.2 使用方法" href="sdk/operation-log/usage.html" collapse="true"/>
                </item>
                <item name="5 加密/解密" href="sdk/crypto/index.html" collapse="true">
                    <item name="5.1 介绍" href="sdk/crypto/introduce.html" collapse="true"/>
                    <item name="5.2 使用方法" href="sdk/crypto/usage.html" collapse="true"/>
                </item>
                <item name="9 工具集" href="sdk/tools/index.html" collapse="true">
                    <item name="9.1 解压缩" href="sdk/tools/compress/index.html" collapse="true">
                        <item name="9.1.1 介绍" href="sdk/tools/compress/introduce.html" collapse="true"/>
                        <item name="9.1.2 使用方法" href="sdk/tools/compress/usage.html" collapse="true"/>
                    </item>
                    <item name="9.2 CSV校验" href="sdk/tools/csv/index.html" collapse="true">
                        <item name="9.2.1 介绍" href="sdk/tools/csv/introduce.html" collapse="true"/>
                        <item name="9.2.2 使用方法" href="sdk/tools/csv/usage.html" collapse="true"/>
                    </item>
                    <item name="9.3 HTTP工具" href="sdk/tools/http/index.html" collapse="true">
                        <item name="9.3.1 介绍" href="sdk/tools/http/introduce.html" collapse="true"/>
                        <item name="9.3.2 使用方法" href="sdk/tools/http/usage.html" collapse="true"/>
                    </item>
                    <item name="9.4 随机数" href="sdk/tools/random/index.html" collapse="true">
                        <item name="9.4.1 介绍" href="sdk/tools/random/introduce.html" collapse="true"/>
                        <item name="9.4.2 使用方法" href="sdk/tools/random/usage.html" collapse="true"/>
                    </item>
                    <item name="9.5 字符数组" href="sdk/tools/char-array/index.html" collapse="true">
                        <item name="9.5.1 介绍" href="sdk/tools/char-array/introduce.html" collapse="true"/>
                        <item name="9.5.2 使用方法" href="sdk/tools/char-array/usage.html" collapse="true"/>
                    </item>
                    <item name="9.6 字符串" href="sdk/tools/string/index.html" collapse="true">
                        <item name="9.6.1 介绍" href="sdk/tools/string/introduce.html" collapse="true"/>
                        <item name="9.6.2 使用方法" href="sdk/tools/string/usage.html" collapse="true"/>
                    </item>
                    <item name="9.7 XML" href="sdk/tools/xml/index.html" collapse="true">
                        <item name="9.7.1 介绍" href="sdk/tools/xml/introduce.html" collapse="true"/>
                        <item name="9.7.2 使用方法" href="sdk/tools/xml/usage.html" collapse="true"/>
                    </item>
                    <item name="9.8 URL" href="sdk/tools/url/index.html" collapse="true">
                        <item name="9.8.1 介绍" href="sdk/tools/url/introduce.html" collapse="true"/>
                        <item name="9.8.2 使用方法" href="sdk/tools/url/usage.html" collapse="true"/>
                    </item>
                    <item name="9.9 命令执行" href="sdk/tools/command/index.html" collapse="true">
                        <item name="9.9.1 介绍" href="sdk/tools/command/introduce.html" collapse="true"/>
                        <item name="9.9.2 使用方法" href="sdk/tools/command/usage.html" collapse="true"/>
                    </item>
                </item>
                <item name="10 FAQ" href="faq.html" collapse="true">
                </item>
            </menu>
            <menu name="Documentation">
                <item name="JAVA DOC" href="apidocs/index.html" target="_blank"/>
            </menu>
            <!--<menu name="Examples">-->
            <!--<item name="上传操作日志" href="examples/auditlog.html"/>-->
            <!--<item name="获取客户端IP" href="examples/clientip.html"/>-->
            <!--<item name="执行OS命令" href="examples/command.html"/>-->
            <!--</menu>-->
            <menu name="PROJECT DOCUMENTATION">
                <item name="Project Infomation" href="project-info.html" collapse="true">
                    <item name="Index" href="index.html"/>
                    <item name="Summary" href="summary.html"/>
                    <item name="Dependency Infomation" href="dependency-info.html"/>
                    <item name="Dependency Management" href="dependency-management.html"/>
                    <item name="Plugin Management" href="plugin-management.html"/>
                    <item name="Team" href="team.html"/>
                </item>
            </menu>
            <!--<menu ref="reports"/>-->
            <!--<menu ref="modules"/>-->
        </body>
    
        <skin>
            <groupId>org.apache.maven.skins</groupId>
            <artifactId>maven-fluido-skin</artifactId>
            <version>1.7</version>
        </skin>
        <custom>
            <fluidoSkin>
                <sourceLineNumbersEnabled>true</sourceLineNumbersEnabled>
            </fluidoSkin>
        </custom>
    </project>
    

    自定义一些现实字段:/src/site/custom/project-info-reports.properties

    源文档视图

    src
    └─site
        │  site.xml
        │
        ├─custom
        │      project-info-reports.properties
        │
        ├─markdown
        │  │  faq.md
        │  │  index.md
        │  │  integrate.md
        │  │  source.md
        │  │
        │  ├─examples
        │  │      auditlog.md
        │  │      clientip.md
        │  │      runlog.md
        │  │
        │  └─sdk
        │      ├─crypto
        │      │      index.md
        │      │      introduce.md
        │      │      usage.md
        │      │
        │      ├─operation-log
        │      │      index.md
        │      │      introduce.md
        │      │      usage.md
        │      │
        │      ├─run-log
        │      │      index.md
        │      │      introduce.md
        │      │      usage.md
        │      │
        │      └─tools
        │          │  index.md
        │          │
        │          ├─char-array
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─command
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─compress
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─csv
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─http
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─random
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─string
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          ├─url
        │          │      index.md
        │          │      introduce.md
        │          │      usage.md
        │          │
        │          └─xml
        │                  index.md
        │                  introduce.md
        │                  usage.md
        │
        └─resources
            │  favicon.ico
            │
            ├─css
            │      site.css
            │
            └─sdk
                ├─operation-log
                │      design01.png
                │
                └─tools
                    └─char-array
                            design.png
    

    每个文件夹中index.md示例:

    ## Summary
    
    安全工具集合
    
    * [字符数组检查](char-array/index.html)
    * [CSV文件检查](csv/index.html)
    * [HTTP工具](http/index.html)
    * [IO工具](io/index.html)
    * [随机数生成](random/index.html)
    * [字符串操作工具](string/index.html)
    * [文件解压缩](compress/index.html)
    * [XML文档安全读取](xml/index.html)
    

    执行命令

    执行

    mvn clean && mvn -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true site-deploy
    

    代码高亮和网站图标

    在site.xml的body中添加如下片段,注意/security/是根据tomcat部署的子文件夹路径来的,如果部署在根路径下就是/favicon.ico即可:

    <body>
            <head>
                <![CDATA[<link rel="shotcut icon" href="/security/favicon.ico"/>]]>
                <!-- Workaround for https://issues.apache.org/jira/browse/DOXIA-571 -->
                <![CDATA[<script type="text/javascript">
                    $(document).ready(function () {
                        $(".source").addClass("prettyprint");
                        prettyPrint();
                    });
                </script>]]>
            </head>
    </body>
    

    自定义CSS

    创建样式文件:src/site/resources/css/site.css,这个文件会被自动引入。内容如下:

    body {
        font-size: 15px;
    }
    
    h3 {
        font-size: 22.5px;
    }
    
    p {
        width: 70%;
    }
    
    .mytable {
        width: 70%;
        table-layout: fixed;
        border: 1px solid #3333336b;
    }
    
    .mytable th {
        background-color: rgb(210, 226, 255);
    }
    
    .mytable th, .mytable td {
        vertical-align: middle;
        word-wrap:break-word;
        word-break:break-all;
    }
    
    .thname {
        width: 15%
    }
    
    .thtype {
        width: 15%
    }
    
    .thmust {
        width: 8%
    }
    
    .thdesc {
        width: 40%
    }
    
    .thscope {
        width: 22%
    }
    
    pre.source {
        width: 70%;
        word-wrap: normal;
        white-space: pre;
        overflow-x: auto;
        display: inline-block;
    }
    
    pre.prettyprint {
        margin-bottom: 0;
    }
    

    自定义表格:

    <table class="table table-bordered table-condensed mytable" border="1">
        <tr>
            <th class="thname">参数名称</th>
            <th class="thtype">参数类型</th>
            <th class="thmust">是否必须</th>
            <th class="thdesc">参数描述</th>
            <th class="thscope">参数范围</th>
        </tr>
    </table>
    

    markdown语法说明

    参考:http://masikkk.com/article/MarkDown/

    几个注意点:

    1. 代码引用一定要使用反引号引起来
    2. 如果是直接写html标签语法,比如在table中写代码,则那些特殊字符比如泛型的写法<>,请使用<和>来代替

    转载于:https://my.oschina.net/yidao620c/blog/3024905

    展开全文
  • maven创建父子工程

    2020-12-19 03:33:28
    创建父工程mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc -DartifactId=alan-springmvc中间出现选择什么的,直接回车即可。 创建完成后修改pom.xml中packaging内容为pom。使用...

    创建父工程

    mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc -DartifactId=alan-springmvc

    中间出现选择什么的,直接回车即可。 创建完成后修改pom.xml中packaging内容为pom。

    使用mvn archetype:generate命令和mvn archetype:create都可以创建项目,目前没有发现这两者的区别,唯一区别的地方就是发现使用mvn archetype:generate命令创建项目时要特别长的时间才能够将项目创建好,而使用mvn archetype:create命令则可以很快将项目创建出来。

    创建子工程

    mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.dao -DartifactId=alan-springmvc-dao -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0

    mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.service -DartifactId=alan-springmvc-service -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0

    mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.web -DartifactId=alan-springmvc-web -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0

    创建完成后删除子工程pom.xml中groupId和version两行,这样可以直接继承父类的。

    将项目编译为eclipse项目

    mvn eclipse:eclipse -Dwtpversion=1.0

    将项目导入eclipse

    修改依赖关系:service依赖dao,web依赖service

    com.alan.springmvcalan-springmvc-dao${project.version}

    修改web的pom.xml

    com.alan.springmvcalan-springmvc-service${project.version}

    JavaProject的pom.xml文件说明

    pom意思就是project object model。

    pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。

    pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

    pom.xml文件的内容如下:

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    com.mycompany.app

    myapp

    1.0-SNAPSHOT

    jar

    myapp

    http://maven.apache.org

    UTF-8

    junit

    junit

    3.8.1

    test

    pom.xml文件的节点元素说明:

           pom文件的顶级节点

         object model版本,对Maven2和Maven3来说,只能是4.0.0

           项目创建组织的标识符,一般是域名的倒写

          定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目

           当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

         打包的方式,有jar、war、ear等

            项目的名称

             项目的地址

        属性配置,比如:UTF-8

       构建项目依赖的jar

    其中由groupId、artifactId和version唯一的确定了一个项目坐标

    运行

    除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    4.0.0

    com.mycompany.app

    myWebApp

    war

    1.0-SNAPSHOT

    myWebApp Maven Webapp

    http://maven.apache.org

    junit

    junit

    3.8.1

    test

    myWebApp

    org.mortbay.jetty

    maven-jetty-plugin

    打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:

    Maven创建项目的命令说明

    mvn archetype:create或者mvn archetype:generate   固定写法

    -DgroupId                       组织标识(包名)

    -DartifactId                      项目名称

    -DarchetypeArtifactId                 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project

    -DinteractiveMode                    是否使用交互模式

    archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

    maven-archetype-archetype

    maven-archetype-j2ee-simple

    maven-archetype-mojo

    maven-archetype-portlet

    maven-archetype-profiles (currently under development)

    maven-archetype-quickstart

    maven-archetype-simple (currently under development)

    maven-archetype-site

    maven-archetype-site-simple

    maven-archetype-webapp

    每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。

    展开全文
  • 5. 使用IDEA创建Maven工程 - 创建javase工程1.目标能够使用IDEA创建javase的Maven工程2.路径创建java工程java工程目录结构编写Hello Worl...

    5. 使用IDEA创建Maven工程 - 创建javase工程

    1.目标

    • 能够使用IDEA创建javase的Maven工程

    2.路径

    1. 创建java工程

    2. java工程目录结构

    3. 编写Hello World!

    3.讲解

    一般使用 Idea 创建 java 工程分有两种情况,如下:

    • 一个java工程,存在多个 Module 模块项目,也就是说存在多个项目

    • 一个java工程,仅有一个项目

    那么这两种情况其实创建上都是差不多的,我们直接看看第一种情况。

    4. 使用 Maven 的骨架,创建多个 Module 模块的项目

    4.1 首先创建一个空工程

    image-20201213103920843
    image-20201213104020286

    4.2 在空工程中创建 Module 模块

    创建空工程之后就会出现项目结构,提示需要创建 Module 模块,如下:

    image-20201213104154479

    4.3 选择使用 Maven 的骨架快速创建 javase 工程

    image-20201213104418555

    4.4 填写 Maven 项目信息

    image-20201213104632368

    4.5 配置 Maven 的设置

    image-20201213104806425

    4.6 设置 Module 项目的名称以及存储地址

    image-20201213104903788

    4.7 创建 Module 项目之后,Idea 将会自动从远程仓库同步所需的 jar 包

    image-20201213104959551
    image-20201213105027666

    4.8 设置 Java 工程目录结构

    创建完毕之后,工程目录如下:

    image-20201213105632822
    4.8.1 设置 main/java文件夹变成 源码的目录(存放java源码)
    image-20201213105853744
    image-20201213105942410
    4.8.2 设置 test/java文件夹变成 测试源码的目录(存放单元测试)
    image-20201213110145734
    image-20201213110230048

    配置完测试目录之后,我们可以看到缺少了需要的 jar 包。这个后面我们在 pom.xml 中配置。

    4.8.3 创建 resources 目录, 变成资源的目录
    image-20201213110456785
    4.8.4 完整的目录结构
    image-20201213110643952

    4.9 工程项目的依赖 pom.xml

    image-20201213111212052
    <?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>com.lijw</groupId>
      <artifactId>javase_demo</artifactId>
      <version>1.0-SNAPSHOT</version>
    
      <!--  项目的名称以及服务url -->
      <name>javase_demo</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <!--
      项目的一些属性配置
        <project.build.sourceEncoding> 项目构建时候的字符集
        <maven.compiler.source> 编译的源码的jdk版本, 设置为1.8版本
        <maven.compiler.target> 编译的目标文件的jdk版本, 设置为1.8版本
      -->
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
    
      <!--
        该项目引入的所有依赖都写在dependencies里面
      -->
      <dependencies>
        <!--
          每一个dependency标签就负责引入一个依赖
        -->
        <dependency>
          <!--
            groupId 坐标的组织名
            artifactId 坐标的项目名
            version 坐标的版本号
    
            scope 依赖的使用范围,如果为test就表示只能在test里面的java里面使用
          -->
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    
      <build>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
          <plugins>
            <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.1.0</version>
            </plugin>
            <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.22.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
            <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
            <plugin>
              <artifactId>maven-site-plugin</artifactId>
              <version>3.7.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>3.0.0</version>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </project>
    

    4.10 基于 pom.xml 下载依赖

    image-20201213111504679
    image-20201213111521777
    image-20201213111618640
    image-20201213111702080

    4.11 执行单元测试

    image-20201213111812346

    5.小结

    1. JavaSe工程的骨架

    image-20201213104418555
    1. 项目的结构

    image-20201213110643952

    6.不使用 Maven 骨架,创建 javase 工程

    6.1 创建 Module 模块,不使用 Maven 的骨架

    image-20201213112749417

    填写项目的信息,注意 Parent 等要设置为 none,如下:

    image-20201213113019937
    image-20201213113036368

    6.2 自动创建好的工程目录结构

    image-20201213113432678

    不适用 Maven 骨架创建项目存在一定的优点和缺点,如下:

    • 优点:

      • 自动创建完整的工程目录结构

      • 初始化项目较快,因为不需要下载多余的 jar 包依赖

    • 缺点:

      • pom.xml 配置没有内置一些配置,也就是都需要自己去配置填写了。

    image-20201213113704207

    6.3  额外 pom.xml 的配置

    6.3.1 设置项目的打包方式为 jar 包
    image-20201213113941352
    <!--  设置项目的打包方式  -->
    <packaging>jar</packaging>
    

    6.4 引入 junit 依赖

    我们可以按住 alt + insert 快捷输入依赖,如下:

    image-20201213114223515

    输入需要的依赖名称,选择版本导入:

    image-20201213114335620

    6.5 下载新增的依赖

    image-20201213114453391
    image-20201213114802119

    6.6 创建单元测试

    上面配置好了 junit 依赖之后,就可以写一个单元测试来执行一下:

    image-20201213115105145
    展开全文
  • maven使用 --- 这一篇就够了

    千次阅读 多人点赞 2021-01-22 13:21:44
    一.maven是什么,能做什么? 1.maven是什么? 没有maven之前项目出现问题的处理过程: 有了maven之后项目出Bug的处理过程: maven执行的几个重要过程: 个人总结:maven提供了自动化构建,省去了程序员大量重复的...
  • maven mvn site 命令报错

    2020-11-04 21:42:15
    工程的pom.xml 下添加如下插件命令 <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>...maven-site-pl...
  • 直接就是图 导航栏的:File->Settings->左侧导航栏Editor->左侧导航栏File Encodings 然后调整为下图所示(图中的荧光黄色部分,是修改完以后的样子): 一定要记得,设置完以后,点击右下角的......
  • 创建maven工程统一管理版本号

    千次阅读 2020-06-19 14:19:57
    一、建立一个maven工程 pom类型  统一管理依赖以及版本号  子工程不会使用所有的定义的依赖  子工程使用依赖时无需指定版本号 其pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project ...
  • 1.创建简单 maven 工程创建好主工程后,删除 src 目录(创建 maven-archetype-site-simple 工程)打开 pom.xml 将jar修改为pom,pom 表示它是一个被继承的模块。2.创建好的模块会自动生成modul_name3.主工程 pom.xml...
  • 首先new一个工程,点击maven,选择java8,选择maven架构site 选择项目编码UTF-8 开启自动注解 java编译 <!-- 统一管理jar包版本 --> <properties> <project.build.sourceEncoding>UTF-8<...
  • Maven工程详解

    2021-05-23 23:10:31
    一、maven理论及前期准备工作 1、Maven的作用 1、管理jar包和它的文档 2、自动下载jar包、文档和源代码 3、管理jar直接的依赖,a.jar需要b.jar,maven会自动下载b.jar 4、管理所需要的jar包的版本 5、编译程序,将...
  • Maven的三套生命周期 Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。 1、clean生命周期:清理项目,包含三个...
  • maven工程plugins报错

    千次阅读 2020-07-07 17:49:39
    使用maven构建工程时,可能会遇到这么一个错误: Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.7.1 我尝试了网络上的各种方法,都不好使,最后的解决办法是,根据报错信息指示,找到本地...
  • Idea 创建maven父子工程

    2021-03-19 10:15:09
    1、Idea 创建maven工程: 1、创建新project,选择maven,勾选Create from archetype,选择-site或者-quickstart 下一步,输入名字,路径。 2、创建好后,简单设置:编码为UTF-8,编译为java8,自动引入等。 ...
  • 在之前的javaSE开发中,...但是最近在学习Maven的时候知道了它对工程的目录结构有要求,也就是所谓的“惯例优于配置”。有一个被绝大多数人认可的java工程的目录结构被确定下来。这样统一了市面上各种复杂配置的工程...
  • Maven 最全教程及使用Eclipse创建maven工程 Apache Maven 最全教程 前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下。 一、为什么使用Maven这样的构建工具【why...
  • Maven多模块工程讲解~

    2020-04-25 08:05:13
    上一篇我们讲了Maven的简介 我们这次开始Maven的配置文件! 思维导图: 一、Maven配置文件; 我们先看看pom.xml文件: 标签最常用的四个属性标签: groupId:项目组织唯一的标识符,实际对应JAVA的包的...
  • Maven可以通过site生成项目的帮助文档,并且格式为html,那么可以通过site-deploy把文档部署到远端,部署方式支持HTTP/FTP/SCM/WebDAV等。 更多部署方案,参考:...
  • 1.java源码和编译 用notepad++查看JavaA.class,然后我们来进行java... image.png 2.package包路径 首先要先配maven环境变量(这里就不多说了,百度就可以找到) 生成maven模板工程 mvn archetype:generate -DgroupId=...
  • 2.确认Maven配置文件(maven安装目录/conf/settings.xml)已配置仓库镜像(为了下载速度更快)不会配置? 3.IDEA中正确的设置了Maven的主目录及配置文件 不要照抄,要根据自己的实际安装路径及配置路径进行填写 ...
  • 配置maven环境①首先需要配置好java环境变量。 ②解压maven核心程序:  将apache-maven-3.3.9-bin.zip解压到一个非中文无空格的目录下。例如:F:\Maven\apache-maven-3.3.9 ③配置环境变量:  右键计算机 -> ...
  • 文章目录Maven简介下载并配置环境变量创建父子工程仓库pom.xml Maven简介 Maven 是一个项目管理工具,通过 pom.xml 文件中的配置可以引入相关依赖 Jar 包。通过 Maven 相关命令可进行项目的清理、测试、编译、打包...
  • Maven工程的搭建

    2020-05-13 12:30:35
    Maven工程的搭建 1、什么是Maven? Maven这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn],不要读作“妈文”。Maven是一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。在JavaEE开发的历史...
  • 在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成。1.创建一个父项目NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面...
  • Maven创建主工程和子工程

    千次阅读 2012-06-28 17:35:11
    1.文件 --> 新建 --> 项目-->Maven --> Maven Project--> 勾选 Create a simple project (skip archetype selection)     2.创建根项目  Group Id:项目或者组织的唯一标志,并且配置时生成的路径也...
  • Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-site-plugin:maven-plugin:3.0:runtime  Cause: error in opening zip file pom.xml /jshop2 line 1 Maven ...
  • archetype-quickstart (javaSE项目) 16: internal -> maven-archetype-site-simple (简单的网站生成项目) 17: internal -> maven-archetype-site (更复杂的网站项目一般用来做父工程) 18: internal -> maven-...
  • 第一种方法见前面的博客 用Maven创建web项目(详细步骤)maven-3.3.9下载之后就是配置环境变量,可以去百度一哈,用MAVEN_HOME配置,我图方便,直接在用户的path配置的。接下来我们修改我们本地的Maven仓库。默认...
  • Mavenmaven常用命令,maven工程运行调试1. maven常用命令1.1 compile1.2 test1.3 clean1.4 package1.5 install1.6 Maven 指令的生命周期1.7 maven 的概念模型1.8 坐标设置1.9 设置JDK编译版本1.10 添加tomcat7...
  • maven工程的导入

    2015-12-16 16:41:26
    1、将工程用eclipse从svn下载到本地, 2、从eclipse将工程删去,workpace中不要删除, 3.设置li包,和setting.xml 4、导入maven工程,从你刚才下载的工程,选择所有 5、ok

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,984
精华内容 4,793
关键字:

maven的site工程