2016-08-01 13 views
0

私が見ているものに固有の情報が見つかりませんでした。2文字のパッケージ名でIntellijが "シンボルを解決できません"

私のメインパッケージは、すべてのコードが保持されているre.diceです。

IntelliJは現在、2文字の部分reを赤色で強調表示しています。「シンボルを解決できません」というエラーメッセージが表示され、「」と表示されます。

私のプロジェクトはMavenで正しくビルドされていますが、それ以上の問題がないかどうかを確認するためにクラス内の機能を実装していません。

これはIntelliJのバグですか?または2文字のパッケージ名に問題がありますか?私はそれが何かのために予約されていることはわかりません - IntelliJに認識させる必要があるのはどこかの設定であるのだろうか?ここで

EDITは私のコンフィギュレーションクラスは

package re.dice.config; 

import freemarker.template.utility.XmlEscape; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.http.MediaType; 
import org.springframework.web.servlet.config.annotation.*; 
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; 

import java.util.HashMap; 
import java.util.Map; 

@Configuration 
@ComponentScan("re.dice") 
@EnableWebMvc 
public class AppConfig extends WebMvcConfigurerAdapter { 

    @Bean(name = "freemarkerConfig") 
    public FreeMarkerConfigurer freemarkerConfig() { 
     FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); 
     configurer.setTemplateLoaderPath("/templates"); 
     Map<String,Object> map = new HashMap<>(); 
     map.put("xml_escape", new XmlEscape()); 
     configurer.setFreemarkerVariables(map); 
     return configurer; 
    } 

    @Override 
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     configurer.ignoreUnknownPathExtensions(false).defaultContentType(MediaType.TEXT_HTML); 
    } 

    @Override 
    public void configureViewResolvers(ViewResolverRegistry registry) { 
     registry.freeMarker(); 
    } 

    @Override 
    public void addResourceHandlers(final ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/css/**").addResourceLocations("classpath:/css/"); 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources"); 
    } 
} 

であり、ここでこれはこのパッケージ名の下にある私は現在持っている唯一のプロジェクトである私のpom.xml

<?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>re.dice</groupId> 
    <artifactId>frontend</artifactId> 
    <name>frontend</name> 
    <version>0.1-SNAPSHOT</version> 

    <packaging>war</packaging> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
    </parent> 

    <properties> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>4.3.2.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-freemarker</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>6.0.3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>jquery</artifactId> 
      <version>2.1.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.2.0</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.webjars</groupId> 
        <artifactId>jquery</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

です。

私はこれがIntelliJの「バグ」ではなく、むしろ「特異性」かもしれないことを認識しています。

+0

Intellij Ideaは2文字のパッケージ名で問題はなく、1文字の名前でも問題ありません。クラスパスの設定に問題があるようです。しかし、あなたはコードや設定ファイルを投稿していないので、原因が分かりにくいです。 –

+0

IntelliJのバグではありません。私はそれがあなたのコード/構成だと確信しています。 – duffymo

+0

私には1つの提案があります。パッケージ 're.dice'はあなたによって書かれた別のmavenプロジェクトの一部です。そして、別のプロジェクトからの参照をしようとしています。そのような場合は、 're.dice'を含むプロジェクトをローカルのMavenリポジトリにインストールしてください。 're.dice'を含むプロジェクトに対して' mvn clean install'を実行し、 're.dice'を参照するプロジェクトに対して同じ作業を行います。 –

答えて

0

re.diceは、rediceの2つのパッケージがあることを意味します。 diceフォルダはreフォルダ内にあります。

プロジェクトファイルにreというフォルダを作成し、その中にdiceを入れることができます。または、最もスマートなものは、 "re_dice"などのパッケージ名を変更することができます。ファイルに名前をつけているときは、 '。'を使用しないでください。

+0

これは実際に私が以前考えていたように、パッケージ名が 're.dice'として作成されていて、2つの別々のフォルダではないことを認識しました。 IntelliJは、再編成のためにパッケージをドラッグアンドドロップすると少し面白そうです。 たとえば、 're'の下にパッケージフォルダ' dice'を作成し、 'config'パッケージをドラッグして' dice.re'に変更します。 私は移動したいすべてのパッケージを同時にドラッグすることでこれを解決しました。これは私が探していたパッケージ構造を保持していました。 – alexanderhosford

関連する問題