ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美三级在线,在线播放中文字幕,麻豆影视在线观看http://www.aygfsteel.com/jjshcc/category/48354.htmlzh-cnWed, 10 Jun 2015 19:03:00 GMTWed, 10 Jun 2015 19:03:00 GMT60mvn archetype:generatehttp://www.aygfsteel.com/jjshcc/archive/2015/06/10/425597.htmlEric_jiangEric_jiangWed, 10 Jun 2015 04:31:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2015/06/10/425597.htmlhttp://www.aygfsteel.com/jjshcc/comments/425597.htmlhttp://www.aygfsteel.com/jjshcc/archive/2015/06/10/425597.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/425597.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/425597.htmlmvn archetype:generate -DgroupId=com.bestpay.support.gd -DartifactId=JBatchReward -DarchetypeArtifactId=maven-archetype-j2ee-simple

]]>
maven2创徏的archetypeArtifactId¾cÕdž‹http://www.aygfsteel.com/jjshcc/archive/2015/06/10/425593.htmlEric_jiangEric_jiangWed, 10 Jun 2015 03:39:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2015/06/10/425593.htmlhttp://www.aygfsteel.com/jjshcc/comments/425593.htmlhttp://www.aygfsteel.com/jjshcc/archive/2015/06/10/425593.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/425593.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/425593.html看maven-definitive-guide到第五章了,发现maven可以创徏不少¾cÕdž‹çš„demoåQŒåªè¦è¾“入:
mvn archetype:createž®±å¯ä»?/span>
不过åQŒåˆ›å»ºçš„同时需要archetypeArtifactId˜q™ä¸ªå‚数来识别,不过不太清楚有什么类型,只知道默认不填是maven-archetype-quickstart åQŒweb是maven-archetype-webapp
发现有更½Ž€å•çš„æ–ÒŽ³•åQŒåªè¦è¾“å…¥mvn archetype:generate
ž®×ƒ¼šž®†æ‰€æœ‰å¯ç”¨çš„¾cÕdž‹æ˜„¡¤ºåQŒåƈ且让你自己选,输出如下åQ?/span>
1: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
2: internal -> appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)
3: internal -> appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)
4: internal -> appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)
5: internal -> appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)
6: internal -> appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)
7: internal -> appfuse-modular-spring (AppFuse archetype for creating a modular application with Hibernate, Spring and Spring MVC)
8: internal -> appfuse-modular-struts (AppFuse archetype for creating a modular application with Hibernate, Spring and Struts 2)
9: internal -> appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)
10: internal -> maven-archetype-j2ee-simple (A simple J2EE Java application)
11: internal -> maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)
12: internal -> maven-archetype-mojo (A Maven Java plugin development project)
13: internal -> maven-archetype-portlet (A simple portlet application)
14: internal -> maven-archetype-profiles ()
15: internal -> maven-archetype-quickstart ()
16: internal -> maven-archetype-site-simple (A simple site generation project)
17: internal -> maven-archetype-site (A more complex site project)
18: internal -> maven-archetype-webapp (A simple Java web application)
19: internal -> struts2-archetype-starter (A starter Struts 2 application with Sitemesh, DWR, and Spring)
20: internal -> struts2-archetype-blank (A minimal Struts 2 application)
21: internal -> struts2-archetype-portlet (A minimal Struts 2 application that can be deployed as a portlet)
22: internal -> struts2-archetype-dbportlet (A starter Struts 2 portlet that demonstrates a simple CRUD interface with db backing)
23: internal -> struts2-archetype-plugin (A Struts 2 plugin)
24: internal -> shale-archetype-blank (A blank Shale web application with JSF)
25: internal -> maven-adf-archetype (Archetype to ease the burden of creating a new application based with ADF)
26: internal -> data-app (A new Databinder application with sources and resources.)
27: internal -> jini-service-archetype (Archetype for Jini service project creation)
28: internal -> softeu-archetype-seam (JSF+Facelets+Seam Archetype)
29: internal -> softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)
30: internal -> softeu-archetype-jsf (JSF+Facelets Archetype)
31: internal -> jpa-maven-archetype (JPA application)
32: internal -> spring-osgi-bundle-archetype (Spring-OSGi archetype)
33: internal -> confluence-plugin-archetype (Atlassian Confluence plugin archetype)
34: internal -> maven-archetype-har (Hibernate Archive)
35: internal -> maven-archetype-sar (JBoss Service Archive)
36: internal -> wicket-archetype-quickstart (A simple Apache Wicket project)

]]>
Maven中国镜像http://www.aygfsteel.com/jjshcc/archive/2015/03/17/423548.htmlEric_jiangEric_jiangTue, 17 Mar 2015 13:28:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2015/03/17/423548.htmlhttp://www.aygfsteel.com/jjshcc/comments/423548.htmlhttp://www.aygfsteel.com/jjshcc/archive/2015/03/17/423548.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/423548.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/423548.html有段旉™—´æ²¡ç”¨maven了,最˜q‘ä‹É用maven下蝲jar包时速度¾~“æ…¢åQŒæœ€åˆä»¥ä¸ºæ˜¯è‡ªå·±¾|‘速的问题åQŒåŽæ¥ç¡®å®šæ˜¯è®‰K—®mavençš„central repository端速度¾~“慢。在¾|‘上扑ֈ°äº†ä¸€ä¸ªmaven repository的中国镜像,速度相当不错。特此收藏ã€?/span>


    

<mirror>

      <id>CN</id>
      <name>OSChina Central</name>                                                                                                                       
      <url>http://maven.oschina.net/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>

    </mirror>

========================================================

OSChina Maven 库ä‹É用帮åŠ?


==================其他maven仓库镜像==========================

<mirror>  
      <id>repo2</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
      <url>http://repo2.maven.org/maven2/</url>  
</mirror>  
<mirror>  
      <id>net-cn</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
      <url>http://maven.net.cn/content/groups/public/</url>   
</mirror>  
<mirror>  
      <id>ui</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
     <url>http://uk.maven.org/maven2/</url>  
</mirror>  
<mirror>  
      <id>ibiblio</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
     <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>  
</mirror>  
<mirror>  
      <id>jboss-public-repository-group</id>  
      <mirrorOf>central</mirrorOf>  
      <name>JBoss Public Repository Group</name>  
     <url>http://repository.jboss.org/nexus/content/groups/public</url>  
</mirror>

<mirror>  
      <id>JBossJBPM</id> 
    <mirrorOf>central</mirrorOf>
    <name>JBossJBPM Repository</name>
    <url>
https://repository.jboss.org/nexus/content/repositories/releases/</url>
</mirror>




]]>
创徏mavençš„web™å¹ç›®åQŒåƈ用jetty调试http://www.aygfsteel.com/jjshcc/archive/2014/12/02/420926.htmlEric_jiangEric_jiangTue, 02 Dec 2014 08:37:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2014/12/02/420926.htmlhttp://www.aygfsteel.com/jjshcc/comments/420926.htmlhttp://www.aygfsteel.com/jjshcc/archive/2014/12/02/420926.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/420926.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/420926.html1、mvn archetype:create -DgroupId=org.david.app -DartifactId=mywebapp -DarchetypeArtifactId=maven-archetype-webapp
2、cd mywebapp
     mvn eclipse:eclipse
     导入eclipse工程
     åQˆæˆ–者直接从eclipse中导入maven工程åQ?/span>
3、添加servlet依赖
        <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
4、添加源代码目录src/main/java
     ž®†æºä»£ç æ”‘Öœ¨è¯¥ç›®å½•下ã€?/span>
5、添加jetty插äšg
<build>
   <finalName>mywebapp</finalName>
   <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
        </plugin>        
   </plugins>
</build>
6、用jetty调试åQˆhttp://www.aygfsteel.com/alwayscy/archive/2007/06/01/118584.htmlåQ?/span>
命ä×o行:mvn jetty:run
或�/span>
1、先来配¾|®ä¸€ä¸ªå¤–éƒ¨å·¥å…øP¼Œæ¥è¿è¡ŒJETTYåQ?/span>
选择菜单Run->External Tools->External Tools ...在左辚w€‰æ‹©ProgramåQŒå†ç‚¹NewåQ?/span>
配置Location为mvn完整命ä×o行。定位到bin下的mvn.bat
选择Working Directory为本™å¹ç›®ã€?/span>
Arguments填写åQšjetty:run
再点选Enviroment™åµï¼šåŠ å…¥MAVEN_OPTS变量åQŒå€égØ“åQ?/span>
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8080,server=y,suspend=y
其中åQŒå¦‚æžœsuspend=n 表示不调试,直接˜qè¡Œã€‚address=8080为端å?/span>
然后åQŒç‚¹APPLYåQŒå†å…³é—­æœ¬å¯¹è¯æ¡†ã€?/span>
另外注意一点,好像external tool菜单™å¹åœ¨java broweringçš„perspective下才会出现。如果在java下看不见åQŒå¯ä»¥åˆ‡æ¢ä¸‹è¯•试ã€?/span>
启动jetty
2、调试应�/span>
炚w€‰run->debug...
选中左树中的Remote Java ApplicationåQŒå†ç‚¹Newã€?/span>
选择你的™å¹ç›®åQŒå…³é”®æ˜¯è¦å¡«å’Œä¹‹å‰è®¾¾|®å¤–部工å…äh—¶ç›¸åŒçš„端口号ã€?/span>

]]>
Mavençš„dependencyManagementhttp://www.aygfsteel.com/jjshcc/archive/2011/07/08/353914.htmlEric_jiangEric_jiangFri, 08 Jul 2011 01:59:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2011/07/08/353914.htmlhttp://www.aygfsteel.com/jjshcc/comments/353914.htmlhttp://www.aygfsteel.com/jjshcc/archive/2011/07/08/353914.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/353914.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/353914.htmlMaven在dependencyManagementå…ƒç´ ä¸­äØ“ä½ æä¾›äº†ä¸€¿Uæ–¹å¼æ¥¾lŸä¸€ä¾èµ–版本受÷€‚ä½ ¾lå¸¸ä¼šåœ¨ä¸€ä¸ªç»„¾l‡æˆ–者项目的最™å¶å±‚的父POM中看到dependencyManagement元素。ä‹É用pom.xml中的dependencyManagement元素能让你在子项目中引用一个依赖而不用显式的列出版本受÷€?/p>

Maven会沿着父子层次向上赎ͼŒç›´åˆ°æ‰‘Öˆ°ä¸€ä¸ªæ‹¥æœ‰dependencyManagement元素的项目,然后它就会ä‹É用在˜q™ä¸ªdependencyManagement元素中指定的版本受÷€?/p>

 

<project>
  
<modelVersion>4.0.0</modelVersion>
  
<groupId>org.sonatype.mavenbook</groupId>
  
<artifactId>a-parent</artifactId>
  
<version>1.0.0</version>
  
  
<dependencyManagement>
    
<dependencies>
      
<dependency>
        
<groupId>mysql</groupId>
        
<artifactId>mysql-connector-java</artifactId>
        
<version>5.1.2</version>
      
</dependency>
      
    
<dependencies>
  
</dependencyManagement>



然后åQŒåœ¨å­é¡¹ç›®ä¸­åQŒä½ å¯ä»¥ä½¿ç”¨å¦‚下的依赖XMLæ·ÕdŠ ä¸€ä¸ªå¯¹MySQL Java Connector的依赖:

<project>
  
<modelVersion>4.0.0</modelVersion>
  
<parent>
    
<groupId>org.sonatype.mavenbook</groupId>
    
<artifactId>a-parent</artifactId>
    
<version>1.0.0</version>
  
</parent>
  
<artifactId>project-a</artifactId>
  
  
<dependencies>
    
<dependency>
      
<groupId>mysql</groupId>
      
<artifactId>mysql-connector-java</artifactId>
    
</dependency>
  
</dependencies>
</project>


如果mysql-connector-java在顶层父™å¹ç›®ä¸­è¢«ä½œäؓ一个依赖列出,˜q™ä¸ªå±‚次中的所有项目都ž®†å¼•用该依赖。ä‹É用dependencyManagement能让你统一òq‰™›†ä¸­åŒ–依赖版本的管理,而不用添加那些会被所有子™å¹ç›®¾l§æ‰¿çš„依赖ã€?/p>

]]>
maven中的scope配置http://www.aygfsteel.com/jjshcc/archive/2011/07/05/353722.htmlEric_jiangEric_jiangTue, 05 Jul 2011 09:01:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2011/07/05/353722.htmlhttp://www.aygfsteel.com/jjshcc/comments/353722.htmlhttp://www.aygfsteel.com/jjshcc/archive/2011/07/05/353722.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/353722.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/353722.html我们在用mavenå’Œeclipse开发WEB应用的时候,需要把servlet-apiå’Œjsp-api加入˜q›æ¥åQŒè¦ä¸ç„¶¾~–译不会通过åQŒåŠ å…¥è¿›æ¥ä¹‹åŽåœ¨æ‰“åŒ…çš„æ—¶å€™maven自动把所有的依赖包都攑ֈ°lib下面åQŒå¦‚果你在tomcat下面˜qè¡Œž®×ƒ¼šæœ‰é—®é¢˜ï¼Œå› äØ“tomcat发现你的web应用的lib中包含了servlet-apiåQŒä»–会报错ã€?/p>

解决˜q™ä¸ªé—®é¢˜çš„æ–¹æ³•就是ä‹Éç”?lt;scope>标签åQŒå¦‚ä¸?/p>

 

<dependency>
    
<groupId>javax.servlet</groupId>
    
<artifactId>servlet-api</artifactId>
    
<version>2.4</version>
    
<scope>provided</scope>
   
</dependency>
   
<dependency>
    
<groupId>javax.servlet</groupId>
    
<artifactId>jsp-api</artifactId>
    
<version>2.0</version>
    
<scope>provided</scope>
   
</dependency>


˜q™é‡Œçš„æ„æ€æ˜¯è¯ß_¼Œ¾~–译的时候用到servlet-apiå’Œjsp-apiåQŒä½†åœ¨æ‰“包的时候不用这两个依赖ã€?/p>

在maven的官方中是这æ äh˜q°çš„

Dependency Scope
Dependency scope is used to limit the transitivity of a depedency, and also to affect the classpath used for various build tasks.

There are 6 scopes available:

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.
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 used on a dependency of type pom in the <dependencyManagement> section. It indicates that the specified POM should be replaced with the dependencies in that POM's <dependencyManagement> section. Since they are replaced, dependencies with a scope of import do not actually participate in limiting the transitivity of a dependency.
如果你这样做了,但ä‹É用eclipse+tomcat做测试的时候发现servlet-api˜q˜æ˜¯è¢«æ‰“包到lib下面了,你要把maven插äšg中的WTP也安装一下,问题应该ž®Þp§£å†³äº†ã€?br />



]]>
Maven仓库的布局http://www.aygfsteel.com/jjshcc/archive/2011/04/21/348691.htmlEric_jiangEric_jiangThu, 21 Apr 2011 04:12:00 GMThttp://www.aygfsteel.com/jjshcc/archive/2011/04/21/348691.htmlhttp://www.aygfsteel.com/jjshcc/comments/348691.htmlhttp://www.aygfsteel.com/jjshcc/archive/2011/04/21/348691.html#Feedback0http://www.aygfsteel.com/jjshcc/comments/commentRss/348691.htmlhttp://www.aygfsteel.com/jjshcc/services/trackbacks/348691.html       ä»ÖM½•一个构仉™ƒ½æœ‰å…¶å”¯ä¸€çš„坐标,æ ÒŽ®˜q™ä¸ªåæ ‡å¯ä»¥å®šä¹‰å…¶åœ¨ä»“库中的唯一存储路径åQŒè¿™ä¾¿æ˜¯Maven的仓库布局方式。例如log4j:log4j:1.2.15˜q™ä¸€ä¾èµ–åQŒå…¶å¯¹åº”的仓库èµ\径䨓log4j/log4j/1.2.15/log4j-1.2.15.jaråQŒç»†å¿ƒçš„读者可以观察到åQŒè¯¥è·¯å¾„与坐标的大致对应关系为groupId/artifactId/version/artifactId-version.packaging。下面看一ŒDµMavençš„æºç åÆˆ¾l“合具体的实例来理解Maven仓库的布局方式åQ?/p>

    private static final char PATH_SEPARATOR = '/';

    private static final char GROUP_SEPARATOR = '.';

    private static final char ARTIFACT_SEPARATOR = '-';

    public String pathOf( Artifact artifact )
    {
        ArtifactHandler artifactHandler = artifact.getArtifactHandler();

        StringBuilder path = new StringBuilder( 128 );

        path.append( formatAsDirectory( artifact.getGroupId() ) ).append( PATH_SEPARATOR );
        path.append( artifact.getArtifactId() ).append( PATH_SEPARATOR );
        path.append( artifact.getBaseVersion() ).append( PATH_SEPARATOR );
        path.append( artifact.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( artifact.getVersion() );

        if ( artifact.hasClassifier() )
        {
            path.append( ARTIFACT_SEPARATOR ).append( artifact.getClassifier() );
        }

        if ( artifactHandler.getExtension() != null && artifactHandler.getExtension().length() > 0 )
        {
            path.append( GROUP_SEPARATOR ).append( artifactHandler.getExtension() );
        }

        return path.toString();
}

    private String formatAsDirectory( String directory )
    {
        return directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
    }
??

该pathOf()æ–ÒŽ³•的目的是æ ÒŽ®æž„äšg信息生成其在仓库中的路径。在阅读本段代码之前åQŒè¯»è€…可以先回顾一下上一章Maven坐标的相兛_†…宏V€‚这里,我们æ ÒŽ®ä¸€ä¸ªå®žé™…的例子来分析èµ\径的生成åQŒè€ƒè™‘˜q™æ ·ä¸€ä¸ªæž„ä»Óž¼šgroupId=org.testng、artifactId=testng、version=5.8、classifier=jdk15、packaging=jaråQŒå…¶å¯¹åº”çš„èµ\径按如下步骤生成åQ?/p>

        首先åŸÞZºŽæž„äšgçš„groupId准备路径åQŒformatAsDirectory()ž®†groupId中的句点分隔½W¦è{换成路径分隔½W¦ï¼Œè¯¥ä¾‹ä¸­ï¼ŒgroupId org.testngž®×ƒ¼šè¢«è{换成org/testngåQŒä¹‹åŽå†åŠ ä¸€ä¸ªèµ\径分隔符斜杠åQŒé‚£ä¹ˆorg.testngž®±æˆä¸ÞZº†org/testng/ã€?
åŸÞZºŽæž„äšgçš„artifactId准备路径åQŒä¹Ÿž®±æ˜¯åœ¨å‰é¢çš„基础上加上artifactId以及一个èµ\径分隔符åQŒè¯¥ä¾‹ä¸­çš„artifactId为testngåQŒé‚£ä¹ˆåœ¨˜q™ä¸€æ­¥è¿‡åŽèµ\å¾„å°±æˆäØ“äº†org/testng/testng/ã€?
        接着使用版本信息åQŒåœ¨å‰é¢çš„基¼‹€ä¸ŠåŠ ä¸Šversionå’Œèµ\径分隔符åQŒè¯¥ä¾‹ä¸­ç‰ˆæœ¬æ˜?.8åQŒé‚£ä¹ˆèµ\å¾„å°±æˆäØ“äº†org/testng/tesgng/5.8/ã€?
˜q™ä¸€æ­¥å†ä¾æ¬¡åŠ ä¸ŠartifactIdåQŒæž„件分隔符˜qžå­—åøP¼Œä»¥åŠversionåQŒäºŽæ˜¯æž„建的路径ž®±å˜æˆäº†org/testng/testng/5.8/testng-5.8。读者可能会注意到这里ä‹É用了artifactId.getVersion()åQŒè€Œä¸Šä¸€æ­¥ç”¨çš„æ˜¯artifactId.getBaseVersion()åQŒversionå’ŒbaseVersion的区别在本章讨论SNAPSHOT的时候会具体阐述ã€?
紧接着如果构äšg有classifieråQŒå°±åŠ ä¸Šæž„äšg分隔½W¦å’ŒclassifieråQŒè¯¥ä¾‹ä¸­æž„äšgçš„classifier是jdk15åQŒé‚£ä¹ˆèµ\径就变成org/testng/testng/5.8/testng-5.8-jdk5ã€?
最后第‹‚€æŸ¥æž„ä»¶çš„extensionåQŒè‹¥extension存在åQŒåˆ™åŠ ä¸Šå¥ç‚¹åˆ†éš”½W¦å’ŒextensionåQŒä»Žä»£ç ä¸­å¯ä»¥çœ‹åˆŽÍ¼Œextension是从artifactHandler而非artifact获取åQŒartifactHandler是由™å¹ç›®çš„packaging军_®šçš„,因此可以è¯ß_¼Œpackaging军_®šäº†æž„件的扩展名,该例的packaging是的jaråQŒå› æ­¤æœ€¾lˆçš„路径为org/testng/testng/5.8/testng-5.8-jdk5.jarã€?
        到这里笔者(包括读者你åQ‰éƒ½åº”该感谢Maven开源社区,正是ç”׃ºŽMaven的所有源代码都是开攄¡š„åQŒæˆ‘们才能仔¾l†å¾—深入到其内部工作的所有细节ã€?
        ç”׃ºŽMaven仓库是基于简单文件系¾lŸå­˜å‚¨çš„åQŒçŽ°åœ¨æˆ‘ä»¬åˆç†è§£äº†å…¶å­˜å‚¨æ–¹å¼åQŒå› æ­¤å½“遇到一些与仓库相关的问题时åQŒå¯ä»¥å¾ˆæ–¹ä¾¿çš„æŸ¥æ‰„¡›¸å…Ïx–‡ä»Óž¼Œæ–¹ä¾¿å®šä½é—®é¢˜ã€‚例如当Maven无法获得™å¹ç›®å£°æ˜Žçš„依赖时åQŒå¯ä»¥ç®€å•该依赖对应的文件在仓库中是否存在,如果不存在,是否有其它版本可用,½{‰ç­‰ã€?

 



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º áÔÃ÷ÏØ| ºâÉ½ÏØ| Á¬ÔƸÛÊÐ| ÇàÉñÏØ| ʯºÓ×ÓÊÐ| ¸»ÔÌÏØ| ¶«ÁÉÏØ| ÄþÔ¶ÏØ| ËÄÆ½ÊÐ| ºì°²ÏØ| Ó¢¼ªÉ³ÏØ| ¼¦Î÷ÊÐ| ¸ÊÄÏÏØ| Äþ¶¼ÏØ| ËÞËÉÏØ| °¢¶ûɽÊÐ| ½­±±Çø| °¢°Í¸ÂÆì| ¶¨Ô¶ÏØ| äµÔ´ÏØ| Á¬ÔƸÛÊÐ| Í»ÈªÏØ| ÆÕ¸ñÏØ| иÉÏØ| °ÔÖÝÊÐ| ½¡¿µ| ½¨ºþÏØ| °¢ºÏÆæÏØ| ½­±±Çø| ÎâÖÒÊÐ| ÉÜÐËÏØ| ÐóÇÏØ| ¿ªÂ³ÏØ| ʯÊ×ÊÐ| ´óͬÊÐ| ¹ÌÊ¼ÏØ| Î÷ÏçÏØ| ÌÁ¹ÁÇø| ɽÒõÏØ| ãòÏªÏØ| ¹ðÑôÏØ|