<project>
...
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://202.117.15.193:8010/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://202.117.15.193:8010/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
...
</project>
<settings>
...
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://202.117.15.193:8010/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://202.117.15.193:8010/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
...
</settings>
<settings>
...
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://202.117.15.193:8010/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
...
</settings>
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.maven.model.Resource;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
*
* @author org.omylab.yakov
* @goal yakov
*/
public class YakovMojo extends AbstractMojo{
private final String[] INCLUDES_DEFAULT={"java","xml","properties"};
/**
* @parameter expression="${project.basedir}"
* @required
* @readonly
*/
private File basedir;
/**
* @parameter expression ="${project.build.sourceDirectory}"
* @required
* @readonly
*/
private File sourceDirectory;
/**
* @parameter expression ="${project.biuld.testSourceDirectory}"
* @required
* @readonly
*/
private File testSourceDirectory;
/**
* @parameter expression ="${project.build.resources}"
* @required
* @readonly
*/
private List<Resource> resources;
/**
* @parameter expression "${project.build.testResources}"
* @required
* @readonly
*/
private List<Resource> testResources;
/**
* The file types which will be included for counting
*
* @parameter
*/
private String[] includes;
public void execute() throws MojoExecutionException, MojoFailureException{
if(includes==null||includes.length==0){
includes=INCLUDES_DEFAULT;
}
try{
countDir(sourceDirectory);
countDir(testSourceDirectory);
for(Resource resource:resources){
countDir(new File(resource.getDirectory()));
}
for(Resource resource:testResources){
countDir(new File(resource.getDirectory()));
}
}catch(IOException e){
throw new MojoExecutionException("Unable to count lines of code.",e);
}
}
private void countDir(File dir)throws IOException{
if(!dir.exists())return;
List<File> collected=new ArrayList<File>();
collectFiles(collected,dir);
int lines=0;
for(File sourceFile:collected){
lines+=countLine(sourceFile);
}
String path=dir.getAbsolutePath().substring(basedir.getAbsolutePath().length());
getLog().info(path+" : "+lines+" lines of code in "+collected.size()+" files");
}
private void collectFiles(List<File> collected,File file){
if(file.isFile()){
for(String include:includes){
if(file.getName().endsWith("."+include)){
collected.add(file);
break;
}
}
}else{
for(File sub:file.listFiles()){
collectFiles(collected,sub);
}
}
}
private int countLine(File file)throws IOException{
BufferedReader reader=new BufferedReader(new FileReader(file));
int line =0;
try{
while(reader.ready()){
reader.readLine();
line++;
}
}finally{
reader.close();
}
return line;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有