精华内容
下载资源
问答
  • 通过《Maven生命周期和阶段详解》教程的...这就是插件的作用。比如 maven-compile-plugin 就可以完成在 compile 阶段Java源代码的编译任务。但是从插件本身来说,一个插件可以实现生命周期多个阶段的任务,比如 ma...

    通过《Maven生命周期和阶段详解》教程的学习,可以知道 Maven 只是对项目的构建过程进行了统一的抽象定义和管理。至于每个阶段由谁来做,Maven 自己不去实现,而是让对应的插件去完成。这就是插件的作用。比如 maven-compile-plugin 就可以完成在 compile 阶段 Java 源代码的编译任务。但是从插件本身来说,一个插件可以实现生命周期多个阶段的任务,比如 maven-dependency-plugin 就可以实现十多个功能:分析项目的依赖功能;列出项目的依赖树;分析依赖的来源等。为方便指定执行插件的某个功能,将插件的每个功能叫目标。这样就可以实现在哪个阶段,执行哪个插件,达到哪个目标。比如“dependency:analyze”,表示 maven-dependency-plugin 的分析目标;“dependency:tree”表示 maven-dependency-plugin 列出依赖的目标。

    插件同生命周期阶段的绑定

    前面介绍了插件的作用和目标,但是最终的目的是要将插件的功能集成到 Maven 生命周期的相关阶段中去,让 Maven 构建工程时自动调用插件完成指定的任务。应如何让 Maven 的生命周期同插件实现相互绑定,来完成实际的构建任务呢?比如 maven-compile-plugin 插件的 compile 目标能完成编译任务,而且 Maven 的 default 生命周期的 compile 阶段,定义好要实现源代码编译。那么用户怎样将 maven-compile-plugin 插件的 compile 目标绑定到 default 生命周期的 compile 阶段,让 Maven 构建项目到 compile 阶段的时候,能自动执行插件的 compile 目标呢?实现生命周期的阶段同插件目标的绑定,一共有两种方式:内置绑定和自定义绑定。

    1. 内置绑定

    为了让用户方便使用 Maven,少进行配置甚至不用配置,就需要用 Maven 构建项目。Maven 在安装好后,自动为生命周期的主要阶段绑定很多插件的目标。当用户通过命令或图形界面执行生命周期的某个阶段时,对应的插件目标就会自动执行,从而完成任务。maven-clean-plugin 插件有个目标叫 clean,它的作用是删除项目构建时产生的输出目录。maven-clean-plugin 的 clean 目标,默认就绑定在 clean 生命周期的 clean 阶段。也就是说,当执行 mvn clean 时,Maven 在 clean 阶段自动调用 maven-clean-plugin 的 clean 目标,删除构建的输出目录。同样地,maven-site-plugin 插件有两个目标:site 目标,用来生成项目站点;deploy 目标,用来将生成的站点发布到站点服务器上去。Maven 默认将 site 目标绑定在 site 生命周期的 site 阶段;将 deploy 目标绑定在 site 生命周期的 site-deploy 阶段。default 生命周期就比较复杂了,不仅仅复杂在有那么多的阶段,还复杂在 Java 可以打成不同的包(jar、war 和 ear 等)。不同的包在不同的阶段是不一样的绑定。当然,也可以通过运行 Maven 命令,在命令提示信息中查看阶段和插件目标的绑定。比如在 CMD 命令行窗口中输入 Maven compile,可以查看到如图1 日志。

    e0999c86657af9ca5ba7971376deca7c.png图 1  运行日志

    根据日志,可以查看出 default-resources 阶段绑定的是“maven-resources-plugin:2.6:resources”目标;default-compile 阶段绑定的是“maven-compile-plugin:2.3.2:compile”目标。

    2. 自定义绑定

    除了 Maven 内置的绑定外,也可以指定在某个阶段绑定某个插件的某个目标。这样就使得 Maven 在构建项目时能执行更多的任务。比如,有时用户希望在构建工程时能将源代码打成 jar 包(安装 JDK 的时候是可以选择安装 src.jar的,这样可以学习 JDKAPI 的源代码)。这样的任务,Maven 没有内置绑定到生命周期的阶段上。所以这就需要用户自己配置了。maven-source-plugin 中有个 jar-no-forkmub,能将项目中的主代码打成 jar 文件。这样就可以将该目标绑定到 default 生命周期的指定阶段,比如 verify 阶段。这样的配置可以加在 pom.xml 中,参考 pom.xml 配置代码如下:

    <project>    ...    <build>        <plugins>            ...            <plugin>                <groupId>org.apache.maven.pluginsgroupId>                <artifactId>maven-source-pluginartifactId>                <version>3.0.0version>                <executions>                    <execution>                        <id>att-sourcesid>                        <phase>verifyphase>                        <goals>                            <goal>jar-no-forkgoal>                        goals>                    execution>                executions>            plugin>        plugins>    build>    ...project>

    在 build 下的 plugins 中配置了一个插件,名叫 maven-source-plugin。它的 groupId为 org.apache.maven.plugins,artifactId 为 maven-source-plugin,version 为 3.0.0。这里需要说明的是,自定义插件尽量使用非快照版本,这样可以避免因为插件版本的不稳定,从而影响构件的不稳定。

    除了要指定需要绑定的插件外,还要通过 executions 下的 execution 子元素配置执行任务,指定任务的 id 和任务目标,还有绑定到生命周期的哪个阶段。phase 元素配置的是绑定的阶段(verify),goals 中的 goal 描述 jar-no-fork。在 CMD 命令行窗口中输入 mvn verify 命令,可以看到如下信息输出。

    [INFO][INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ MvnSSMDemo.Service.Impl ---[INFO][INFO] --- maven-source-plugin:3.0.0:jar-no-fork (att-sources) @ MvnSSMDemo.Service.Impl

    最后表示执行了 id 为 att-sources,插件目标为 maven-source-plugin:3.0.0:jar-no-fork 的任务。在工程的 target 目录下会发现有个 MvnSSMDemo.Service.Impl-0.0.1-SNAPSHOT-sources.jar 文件,这里面就是工程中的所有主代码。细心的话,会发现若不在 phase 中指定要绑定的生命周期阶段,也会得到同样的结果。比如,把 pom.xml 文件中的 phase 这行删除,再执行一次 mvn verify 命令,会发现同样在 verify 阶段执行 maven-source-plugin:jar-no-fork 目标。为什么呢?因为很多插件的目标在插件编写的时候,就已经指定了默认的绑定阶段。为了了解插件绑定的默认生命周期阶段,可以运行如下命令查看。

    mvn help:describe -Dplugin=org.apache.maven.plugins:maven-source-plugin:3.0.0 -Ddetail

    在这些信息中,可以看到关于 jar-no-fork 的描述如下:

    ...source:jar-no-fork  Description: This goal bundles all the sources into a jar archive. This    goal functions the same as the jar goal but does not fork the build and is    suitable for attaching to the build lifecycle.  Implementation: org.apache.maven.plugins.source.SourceJarNoForkMojo  Language: java  Bound to phase: package...

    通过 Bound to phase:package 可以了解到,jar-no-fork 默认绑定的生命周期阶段是 package。最后需要说明的是,在给不同的生命周期阶段绑定不同的插件目标后,这些目标的执行自然是按阶段的顺序逐个执行。如果在一个阶段上绑定了多个目标,效果会如何呢?很简单,都执行,而且是按插件声明的顺序执行。

    插件参数配置

    完成插件目标同生命周期阶段的绑定后,Maven 在构建工程时会自动执行绑定插件的目标任务。但是有很多情况需要给即将执行的目标制定参数,让执行的任务更加适合当前项目的需要,而且几乎所有的 Maven 插件目标都有一些参数可以设置。可以通过命令行和 pom 配置两种方式给这些目标设置比较合适的参数值。接下来分别介绍这两种配置参数的方式。

    1. 命令行配置参数

    在 Maven 命令中,使用 -D后面接参数名称=参数值的方式配置目标参数。比如,maven-surefire-plugin 插件中提供了一个 maven.test.skip 参数,当它的值为 true 时,就不会执行 test 案例。具体语法是:

    Mvn install -Dmaven.test.skip=true

    可以从输入的 info 信息中查看到,没有测试案例部分信息,也就是没有执行测试。

    2. pom 配置参数

    对于有些参数在项目创建好后,目标每次执行的时候都不需要改变,这时候比较好的方式是把这些值配置到 pom.xml 中,这样就省去每次构建的时候都需要输入的麻烦。通过在命令行中输入:Mvn help:describe-Dplugin=org.apache.maven.plugins:maven-compiler-plugin:3.5.1-Ddetail 命令,会发现 compile 目标中有一堆参数,其中有如下内容。

    source (Default: 1.5)
        User property: maven.compiler.source
        The -source argument for the Java compiler.
    staleMillis (Default: 0)
        User property: lastModGranularityMs
        Sets the granularity in milliseconds of the last modification date for
        testing whether a source needs recompilation.
    target (Default: 1.5)
        User property: maven.compiler.target
        The -target argument for the Java compiler.

    这里有 source 和 target 两个参数的介绍,可以通过 pom.xml 做如下配置,指定这两个参数的值。

    <project>    ...    <build>        <plugins>            <plugin>                <groupId>org.apache.maven.pluginsgroupId>                <artifactId>maven-compiler-pluginartifactId>                <version>3.5.1version>                <configuration>                    <source>1.5source>                    <target>1.5target>                configuration>            plugin>            ...        plugins>    build>    ...project>

    通过

    当然,前面这种配置是给 maven-compiler-plugin 插件配置的一个全局参数值,也就是说不管是使用 maven-compiler-plugin 编译工程代码,还是测试代码,都会使用 source=1.5,target=1.5 这两个值。如果需要给特定的任务指定特定的值该怎么办呢?很简单,直接在配置任务的 execution 中添加 configuration 元素,内容同前面的一样。

    1.51.5

    这样的两个值就只对当前任务有效了。

    获取插件信息

    到现在为止,用户可以基本掌握怎么配置插件了,但还是不够完美。因为毕竟在教程中介绍的插件是有限的,而且对每个插件的使用,只是根据需要使用的有限的、有代表意义的目标。在实际项目中可能需要使用更多更合适的插件。那到底要使用哪些插件呢?所以首先得找到用户自己认为合适的插件,再了解这些插件的配置情况及相关参数的详细情况。由于插件非常多,而且插件的数量每天还都在增加。而大部分插件没有完善的帮助文档,用户要想找到一个正确的插件也不是一件容易的事情。下面介绍查找插件信息的方法。

    1. 在线查找插件

    目前,插件基本上都来源于两处,一个是 Apache;另一个是 Codehaus。因为 Maven 本身就来自 Apache 软件基金会,所有在 Apache 上有很多 Maven 的官方插件,而且每天有很多人在使用这些插件,这些插件都经过了很多项目的实际考验,所以它们比较可靠。通过访问 http://maven.apache.org/plugins/index.html 页面可以看到所有插件的列表信息,进入后,可以进一步了解每个插件的详细信息,当然,也可以通过 http://maven.apache.org/maven2/org/apache/maven/plugins/ 下载需要的插件。除了 Apache 官方插件外,托管在 Codehaus 上的 Mojo 项目也提供了大量的 Maven 插件,可以通过 http://mojo.codehaus.org/plugins.html 访问详细列表。同样,可以通过 http://repository.codehaus.org/org/codehaus/mojo 下载插件。美中不足的是,这些插件的文档和可靠性相对不是很好,在使用过程中如果遇到问题,往往需要自己查看源代码进行修复。

    2. 使用 maven-help-plugin 查看插件

    除了通过访问在线文档了解某个插件的详细信息外,还可以借助 maven-help-plugin 插件来获取插件的详细信息。比如,在 CMD 命令行窗口中运行如下命令。

    Mvn help:describe -Dplugin=org.apache.maven.plugins:maven-site-plugin:3.4 -Ddetail

    就可以查看到 maven-site-plugin 插件 3.4 版本的详细信息,内容很多,如下列出的是开始的几个基本信息。

    Name: Apache Maven Site Plugin
    Description: The Maven Site Plugin is a plugin that generates a site for the
      current project.
    Group Id: org.apache.maven.plugins
    Artifact Id: maven-site-plugin
    Version: 3.4
    Goal Prefix: site
    This plugin has 9 goals:
    site:attach-descriptor
      Description: Adds the site descriptor (site.xml) to the list of files to be
        installed/deployed.
        For Maven-2.x this is enabled by default only when the project has pom
        packaging since it will be used by modules inheriting, but this can be
        enabled for other projects packaging if needed.
        This default execution has been removed from the built-in lifecycle of
        Maven 3.x for pom-projects. Users that actually use those projects to
        provide a common site descriptor for sub modules will need to explicitly
        define this goal execution to restore the intended behavior.
      Implementation: org.apache.maven.plugins.site.SiteDescriptorAttachMojo
      Language: java
      Bound to phase: package

    当然,如果不想查看太多,只是想具体了解插件的某个目标,可以用 -Dgoal=目标的方式查看指定目标的信息,比如运行如下命令,可以查看 site 插件的 site 目标信息。

    Mvn help:describe -Dplugin=site -Dgoal=site -Ddetail

    输出信息:

    [INFO] Mojo: 'site:site'
    site:site
      Description: Generates the site for a single project.
        Note that links between module sites in a multi module build will not work,
        since local build directory structure doesn't match deployed site.
      Implementation: org.apache.maven.plugins.site.render.SiteMojo
      Language: java
      Available parameters:
        attributes
          Additional template properties for rendering the site. See Doxia Site
          Renderer.
        generatedSiteDirectory (Default: ${project.build.directory}/generated-site)
          Directory containing generated documentation. This is used to pick up
          other source docs that might have been generated at build time.
        generateProjectInfo (Default: true)
          User property: generateProjectInfo
          Whether to generate the summary page for project reports:
          project-info.html.
        generateReports (Default: true)
          User property: generateReports
          Convenience parameter that allows you to disable report generation.
        generateSitemap (Default: false)
          User property: generateSitemap
          Generate a sitemap. The result will be a 'sitemap.html' file at the site
          root.
        inputEncoding (Default: ${project.build.sourceEncoding})
          User property: encoding
          Specifies the input encoding.
        locales (Default: en)
          User property: locales
          A comma separated list of locales to render. The first valid token will
          be the default Locale for this site.
        moduleExcludes
          Module type exclusion mappings ex: fml -> **/*-m1.fml (excludes fml files
          ending in '-m1.fml' recursively)
          The configuration looks like this:filename1.ext,**/*sample.extchanges.xml,navigation.xml
        outputDirectory (Default: ${project.reporting.outputDirectory})
          User property: siteOutputDirectory
          Directory where the project sites and report distributions will be
          generated.
        outputEncoding (Default: ${project.reporting.outputEncoding})
          User property: outputEncoding
          Specifies the output encoding.
        relativizeDecorationLinks (Default: true)
          User property: relativizeDecorationLinks
          Make links in the site descriptor relative to the project URL. By
          default, any absolute links that appear in the site descriptor, e.g.
          banner hrefs, breadcrumbs, menu links, etc., will be made relative to
          project.url.
          Links will not be changed if this is set to false, or if the project has
          no URL defined.
        saveProcessedContent
          Whether to save Velocity processed Doxia content (*..vm) to
          ${generatedSiteDirectory}/processed.
        siteDirectory (Default: ${basedir}/src/site)
          Directory containing the site.xml file and the source for hand written
          docs (one directory per Doxia-source-supported markup types): see Doxia
          Markup Languages References).
        skip (Default: false)
          User property: maven.site.skip
          Set this to 'true' to skip site generation and staging.
        templateFile
          User property: templateFile
          The location of a Velocity template file to use. When used, skins and the
          default templates, CSS and images are disabled. It is highly recommended
          that you package this as a skin instead.
        validate (Default: false)
          User property: validate
          Whether to validate xml input documents. If set to true, all input
          documents in xml format (in particular xdoc and fml) will be validated
          and any error will lead to a build failure.
        xdocDirectory (Default: ${basedir}/xdocs)
          Alternative directory for xdoc source, useful for m1 to m2 migration
          Deprecated. use the standard m2 directory layout

    命令中的 -Dplugin=site 通过插件的前缀来指定要查看的插件名称,与写成 -Dplugin=org.apache.maven.plugins:maven-site-plugin:3.6 是一样的意思。

    • -Dgoal=site,指定要查看的目标,名称是 site。

    • -Ddetail,表示要查看详细信息。

    33be81953385c0b71387de8a1fe46b08.png

    展开全文
  • Maven工具可以进行clean、compile、install、package、test等操作,但是这些操作有什么用呢,以下面p2p-exterface为例说明一下,pwp-exterface工程目录如下: 点击compile: 只是简单编译,不打包 点击clean: ...

    Maven工具可以进行clean、compile、install、package、test等操作,但是这些操作有什么用呢,以下面的p2p-exterface为例说明一下,pwp-exterface工程目录如下:
    在这里插入图片描述点击compile:
    在这里插入图片描述只是简单的编译,不打包

    点击clean:
    在这里插入图片描述
    清除编译完成的target目录

    点击package:
    在这里插入图片描述编译完成之后打jar包,但是不会把打完的jar包放在本地仓库中

    点击install(先进行了一次clean):
    在这里插入图片描述
    在这里插入图片描述
    编译完成之后dajar包,并且会打完的jar包放在本地仓库中

    点击test:
    测试专用,可以测试执行test目录下面java目录中的所有测试类,并且生成测试报告放在target文件中

    展开全文
  • 2.maven compile 编译项目 3.maven test 编译项目后,再执行Junit测试方法 4.maven package 编译项目后,再执行Junit测试方法,再把项目打包到target目录 5.maven install 编译项目后,再执行Junit测试方法,再把...

    1.maven clean。
    清理项目的target目录
    2.maven compile
    编译项目
    3.maven test
    编译项目后,再执行Junit测试方法
    4.maven package
    编译项目后,再执行Junit测试方法,再把项目打包到target目录
    5.maven install
    编译项目后,再执行Junit测试方法,再把项目打包到target目录,再安装到本地仓库。

    展开全文
  • maven scope 的作用

    千次阅读 2019-02-27 20:35:16
    1.Maven依赖作用范围概述 Maven中使用 scope 来指定当前包依赖范围和依赖传递性。常见可选值有:compile, provided, runtime, test, system 等。scope 主要是用在 pom.xml 文件中依赖定义部分,例如: ...

    一:

    1.Maven中的依赖作用范围概述

    Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性。常见的可选值有:compile, provided, runtime, test, system 等。scope 主要是用在 pom.xml 文件中的依赖定义部分,例如:

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>3.2.1.RELEASE</version>
                <scope>test</scope>
            </dependency>
    

    2.scope各种取值详解

    scope取值 有效范围(compile, runtime, test) 依赖传递 例子
    compile all spring-core
    provided compile, test servlet-api
    runtime runtime, test JDBC驱动
    test test JUnit
    system compile, test  

    正如上表所示,

    compile :为默认的依赖有效范围。如果在定义依赖关系的时候,没有明确指定依赖有效范围的话,则默认采用该依赖有效范围。此种依赖,在编译、运行、测试时均有效。

    provided :在编译、测试时有效,但是在运行时无效。例如:servlet-api,运行项目时,容器已经提供,就不需要Maven重复地引入一遍了。

    runtime :在运行、测试时有效,但是在编译代码时无效。例如:JDBC驱动实现,项目代码编译只需要JDK提供的JDBC接口,只有在测试或运行项目时才需要实现上述接口的具体JDBC驱动。

    test :只在测试时有效,例如:JUnit。

    system :在编译、测试时有效,但是在运行时无效。和provided的区别是,使用system范围的依赖时必须通过systemPath元素显式地指定依赖文件的路径。由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。systemPath元素可以引用环境变量。例如:

            <dependency>
                <groupId>javax.sql</groupId>
                <artifactId>jdbc-stdext</artifactId>
                <version>2.0</version>
                <scope>system</scope>
                <systemPath>${java.home}/lib/rt.jar</systemPath>
            </dependency>

    转自:https://www.jianshu.com/p/91655539e0ce

    二:

    scope的分类
    compile
    默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。

    test
    scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。

    runntime
    runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。比较常见的如JSR×××的实现,对应的API jar是compile的,具体实现是runtime的,compile只需要知道接口就足够了。oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。另外runntime的依赖通常和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。

    provided
    provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。

    system
    从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。

    scope的依赖传递
    A–>B–>C。当前项目为A,A依赖于B,B依赖于C。知道B在A项目中的scope,那么怎么知道C在A中的scope呢?答案是: 
    当C是test或者provided时,C直接被丢弃,A不依赖C; 
    否则A依赖C,C的scope继承于B的scope。

    转自:https://blog.csdn.net/kimylrong/article/details/50353161

    三:

    scope的值
    官方解释

    compile 
    This is the default scope, used if none is specified. Compile dependencies are available in all classpaths of a project. Furthermore, those dependencies are propagated to dependent projects. 
    provided 
    This is much like compile, but indicates you expect the JDK or a container to provide the dependency at runtime. For example, when building a web application for the Java Enterprise Edition, you would set the dependency on the Servlet API and related Java EE APIs to scope provided because the web container provides those classes. This scope is only available on the compilation and test classpath, and is not transitive. 
    runtime 
    This scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath. 
    test 
    This scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases. This scope is not transitive. 
    system 
    This scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository. 
    import (only available in Maven 2.0.9 or later) 
    This scope is only supported on a dependency of type pom in the section. It indicates the dependency to be replaced with the effective list of dependencies in the specified POM’s section. Since they are replaced, dependencies with a scope of import do not actually participate in limiting the transitivity of a dependency.

    中文解释 
    1. compile 默认的范围,编译测试运行都有效。 
    2. provided 编译和测试时有效,最后是在运行的时候不会被加入。官方举了一个例子。比如在JavaEE web项目中我们需要使用servlet的API,但是呢Tomcat中已经提供这个jar,我们在编译和测试的时候需要使用这个api,但是部署到tomcat的时候,如果还加入servlet构建就会产生冲突,这个时候就可以使用provided。 
    3. runtime 在测试和运行时有效。 
    4. test 在测试时有效。 
    5. system 与本机系统相关联,可移植性差。编译和测试时有效。 
    6. import 导入的范围,它只在使用dependencyManagement中,表示从其他pom中导入dependecy的配置。

    转自:https://blog.csdn.net/sinat_25926481/article/details/76924780

    展开全文
  • maven的作用域Scope

    2019-11-10 14:31:12
    Scope依赖作用域也可称作依赖范围:maven依赖,会根据程序所处阶段和场景发生变化,所以maven用scope属性来做限制; a) compile(默认值):在编译、运行、测试、打包都有效; b) provided:编译、测试时有效...
  • Maven 依赖的作用

    2018-07-09 11:02:00
    Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。 scope的分类 compile ...
  • Maven 的classifier的作用

    2015-01-10 00:11:30
    maven 加入json-lib.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile net.sf.json-lib json-lib 2.4 jdk15 直接看一个例子,maven中要引入json包,于是使用了 ...
  • Maven scope的作用

    2020-09-29 09:22:02
    在pom.xml中,<dependency>中还引入了<scope>,<scope>... compile是默认范围;如果没有提供一个范围,那该依赖范围就是编译范围。编译范围依赖在所有classpath 中可用,同...
  • maven中scope的作用

    千次阅读 2017-01-12 11:27:09
    scope其他参数如下: compile 默认scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖项目中。适用于所有阶段,会随着项目一起发布provided ...这个scope 只能作用
  • 一些常用的Maven命令的作用

    千次阅读 2020-10-14 10:22:35
    该命令会删除项目路径下target文件,但是不会删除本地的maven仓库已经生成jar文件。 validate 验证 验证工程是否正确,所有需要资源是否可用。 compile 编译 会在你项目路径下生成一个target目录,在该...
  • maven官网对于scope6种类型解释较简洁,并不能让人很好理解。在此进行翻译并结合项目经历做进一步拓展解释。 以下摘自maven官网: compile maven默认scope如果<dependency>未显式声明<scope...
  • maven项目中出现Unable to compile class for JSP错误的解决办法 1. 首先确定是否添加一下依赖于插件 对于jsp页面,需要添加jsp-api依赖,对于servlet,需要添加javax.servlet-api。 其次,这两个选项的作用于要...
  • Maven依赖的作用

    千次阅读 2015-07-27 18:13:40
    ependency scope 是用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。 自从2.0.9后,新增了1种,现在有了6种scope: compile 默认的scope,表示 dependency 都可以在生命周期...
  • maven的作用域共有五个:  (1) compile 默认就是compile,什么都不配置也就是意味着compilecompile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候...
  • maven工程核心作用

    2019-01-17 22:42:44
    1.依赖管理:maven工程对jar包管理过程。代码可重用,工程共享maven仓库中jar包。 2.一键构建:compile test package install deploy clean 清理生命周期 默认生命周期 站点生命周期...
  • maven工具的作用

    2018-01-09 13:45:15
    clean: 移除本地target文件 package: 打到本项目target下 install: 打到本地仓库中,供其他本地项目使用 deploy: 打到远程仓库中 compile: 编译代码 test: 运行测试用例
  • Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。 scope的分类 compile ...
  • scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署。 scope 的作用范围: compile:默认值,适用于所有阶段(表明该 jar 包在编译、运行以及...
  • Maven中scope标签的作用

    2021-03-29 14:48:31
    使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型例子是spring-code,在编译、测试和运行时候都需要使用该依赖。 test: 测试依赖范围。使用此依赖范围的Maven依赖,只对于测试...
  • scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署。 scope 的作用范围: (1)compile:默认值,适用于所有阶段(表明该 jar 包在编译、...
  • 1、test范围指是测试范围有效,在编译和打包时都不会使用这个依赖 2、compile范围指是编译范围有效,在编译和打包时都会将依赖存储进去 3、provided依赖:在...参考:Mavendependencyscope作用域详解 ...
  • Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。 scope的分类 compile ...
  • 一:1.Maven依赖作用范围概述Maven中使用scope来指定当前包依赖范围和依赖传递性。常见可选值有:compile,provided,runtime,test,system等。scope主要是用在pom.xml文件中依赖定义部分,例如:org....
  • mavenLifecycle中那些按钮都有哪些,都有什么功能呢? validate:验证项目正确性以及包含所有必要信息 compile:编译源码 test:编译和运行测试代码 package:把编译好源码打成包,如jar verify :...
  • maven工程的标准目录结构 一个web工程都会有其标准目录结构,更何况是一个maven...maven的常用命令 mvn compile compile是maven工程的编译命令,作用是将src/main/java下的java源文件编译为class文件并输出到ta...
  • maven的dependency标签除了针对jar包的定位gav外,有时候还会写上scope这个标签,它表示该jar包的作用范围,可用值如下: compile:默认的scope的值,对src/main/java有效,对src/test/java也有效,参与打包,这也...
  • Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。scope的分类compile默认就是...
  • Maven中scope的作用

    2018-07-25 18:30:51
    compile 默认scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖项目中。适用于所有阶段,会随着项目一起发布。即依赖项目会参与到当前项目编译、运行、测试以及打包发布...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415
精华内容 166
关键字:

maven的compile的作用