Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“负时间”;使用Maven构建时出错(在Netbeans中)_Maven_Netbeans - Fatal编程技术网

&引用;“负时间”;使用Maven构建时出错(在Netbeans中)

&引用;“负时间”;使用Maven构建时出错(在Netbeans中),maven,netbeans,Maven,Netbeans,在Netbeans 8.0.2(3.0.5)中使用Maven,我得到了以下(奇怪的)错误: 首先,错误消息对我来说毫无意义——但真正奇怪的是,在命令行上构建和打包应用程序的效果很好,只有在Netbeans 8.0.2中调用Maven时才会出现问题 pom本身如下所示: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

在Netbeans 8.0.2(3.0.5)中使用Maven,我得到了以下(奇怪的)错误:

首先,错误消息对我来说毫无意义——但真正奇怪的是,在命令行上构建和打包应用程序的效果很好,只有在Netbeans 8.0.2中调用Maven时才会出现问题

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>de.dhbw.mbfl</groupId>
    <artifactId>JConnect4Server</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>JConnect4Server</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
            <id>sa_viergewinnt_core-mvn-repo</id>
            <url>https://raw.github.com/FlorianLoch/sa_viergewinnt_core/gh-pages/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>    

    <dependencies>
        <dependency>
            <groupId>de.dhbw.mbfl</groupId>
            <artifactId>JConnect4Lib</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>        
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <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.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

4.0.0
de.dhbw.mbfl
JConnect4Server
1.0-快照
战争
JConnect4Server
UTF-8
sa_Viergewint_core-mvn-repo
https://raw.github.com/FlorianLoch/sa_viergewinnt_core/gh-pages/
真的
总是
de.dhbw.mbfl
JConnect4Lib
1.0-快照
com.googlecode.json-simple
简单json
1.1.1
爪哇
javaeewebapi
7
假如
org.apache.maven.plugins
maven编译器插件
3.1
1.7
1.7
org.apache.maven.plugins
maven战争插件
2.3
假的
有没有更有经验的Maven用户可以帮助我

提前谢谢

更新:Netbeans和Maven使用的JDK是:1.8.0_25,在VM外部使用的JDK(打包工作正常)是1.8.0_31(我读了一些关于这是否是JDK bug的文章…)


更新:我在VM中更新了JDK,错误保持不变。

好的,看来我找到了错误。这是由JDK错误/问题导致FileNotFound异常引起的。这也解释了为什么在使用Windows时会发生错误


简单地说,它就是不起作用,因为文件路径中只有一个空格。。。因此,移动项目解决了问题。使用Mac OS时,问题不会出现。

不确定问题出现的原因,但找到了解决方案。发生此错误的原因是,您尝试生成的一个或多个文件的时间为负值。(
file.getLastModified()
返回负值)。如果这是一个庞大的项目,可能很难追踪其中哪一个出了问题

下面的代码可能会有所帮助:

package com.example;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ModifyAll {
    public static void main(String[] args) throws IOException {
        List<File> folderList = new ArrayList<>();
        List<File> fileList = new ArrayList<>();

        File folder = new File("D:/Rakhu/Copy/projectfolder/src");
        FileVO baseFileVO = segregateFiles(folder);
        fileList.addAll(baseFileVO.getFileList());
        folderList.addAll(baseFileVO.getFolderList());

        for (int i = 0; i < folderList.size(); i++) {
            FileVO thisVO = segregateFiles(folderList.get(i));
            fileList.addAll(thisVO.getFileList());
            folderList.addAll(thisVO.getFolderList());
        }

        for (int i = 0; i < fileList.size(); i++) {
            Date dte = new Date();
            long milliSeconds = dte.getTime();
            System.out.println("Setting Time For " + fileList.get(i) + " as " + milliSeconds);
            fileList.get(i).setLastModified(milliSeconds);
        }
        System.out.println("Succesfully Modified..!!!");
    }

    public static FileVO segregateFiles(File folder) {
        List<File> folderList = new ArrayList<>();
        List<File> fileList = new ArrayList<>();

        File[] listOfFiles = folder.listFiles();
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                fileList.add(listOfFiles[i]);
            } else {
                folderList.add(listOfFiles[i]);
            }
            System.out.println(listOfFiles[i]);
        }
        return new FileVO(fileList, folderList);
    }
}



FileVO.java
package com.example;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileVO {
    List<File> fileList = new ArrayList<>();
    List<File> folderList = new ArrayList<>();

    public FileVO(List<File> fileList, List<File> folderList) {
        this.fileList = fileList;
        this.folderList = folderList;
    }

    public List<File> getFileList() {
        return fileList;
    }

    public void setFileList(List<File> fileList) {
        this.fileList = fileList;
    }

    public List<File> getFolderList() {
        return folderList;
    }

    public void setFolderList(List<File> folderList) {
        this.folderList = folderList;
    }
}
package.com.example;
导入java.io.File;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.Date;
导入java.util.List;
公共类ModifyAll{
公共静态void main(字符串[]args)引发IOException{
List folderList=新建ArrayList();
List fileList=new ArrayList();
文件夹=新文件(“D:/Rakhu/Copy/projectfolder/src”);
FileVO baseFileVO=隔离文件(文件夹);
addAll(baseFileVO.getFileList());
addAll(baseFileVO.getFolderList());
对于(int i=0;i
您可以使用-e启动命令以获取错误stacktrace吗?当然,我应该立即执行此操作……因此它看起来与此处描述的问题相同:。评论中写道:“当我在src/main/webapp/文件中有日期为1970-01-01的文件时,就会发生这种情况,很难发现。”我不确定这是否是同样的问题。。。调用
find./-mtime+200
时,我找不到任何文件-如果有来自“timestamp 0”的文件,我应该这样找到它们,是吗?
package com.example;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ModifyAll {
    public static void main(String[] args) throws IOException {
        List<File> folderList = new ArrayList<>();
        List<File> fileList = new ArrayList<>();

        File folder = new File("D:/Rakhu/Copy/projectfolder/src");
        FileVO baseFileVO = segregateFiles(folder);
        fileList.addAll(baseFileVO.getFileList());
        folderList.addAll(baseFileVO.getFolderList());

        for (int i = 0; i < folderList.size(); i++) {
            FileVO thisVO = segregateFiles(folderList.get(i));
            fileList.addAll(thisVO.getFileList());
            folderList.addAll(thisVO.getFolderList());
        }

        for (int i = 0; i < fileList.size(); i++) {
            Date dte = new Date();
            long milliSeconds = dte.getTime();
            System.out.println("Setting Time For " + fileList.get(i) + " as " + milliSeconds);
            fileList.get(i).setLastModified(milliSeconds);
        }
        System.out.println("Succesfully Modified..!!!");
    }

    public static FileVO segregateFiles(File folder) {
        List<File> folderList = new ArrayList<>();
        List<File> fileList = new ArrayList<>();

        File[] listOfFiles = folder.listFiles();
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                fileList.add(listOfFiles[i]);
            } else {
                folderList.add(listOfFiles[i]);
            }
            System.out.println(listOfFiles[i]);
        }
        return new FileVO(fileList, folderList);
    }
}



FileVO.java
package com.example;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileVO {
    List<File> fileList = new ArrayList<>();
    List<File> folderList = new ArrayList<>();

    public FileVO(List<File> fileList, List<File> folderList) {
        this.fileList = fileList;
        this.folderList = folderList;
    }

    public List<File> getFileList() {
        return fileList;
    }

    public void setFileList(List<File> fileList) {
        this.fileList = fileList;
    }

    public List<File> getFolderList() {
        return folderList;
    }

    public void setFolderList(List<File> folderList) {
        this.folderList = folderList;
    }
}